Php 为什么这段代码散列为null?
以下代码通过用户名检查,但密码检查失败 如您所见,散列是重复的,但出于某种原因,它们输出Php 为什么这段代码散列为null?,php,forms,post,passwords,sha256,Php,Forms,Post,Passwords,Sha256,以下代码通过用户名检查,但密码检查失败 如您所见,散列是重复的,但出于某种原因,它们输出e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,这是/dev/null的sha256sum。由于密码似乎根本没有回音,我只能假设它无法获得帖子,但为什么 登录 用户名: 密码: 多洛金 if($\u POST[username]==$actualsername){ //散列密码 $hashedpassword=hash('s
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
,这是/dev/null
的sha256sum
。由于密码似乎根本没有回音,我只能假设它无法获得帖子,但为什么
登录
用户名:
密码:
多洛金
if($\u POST[username]==$actualsername){
//散列密码
$hashedpassword=hash('sha256',$_POST[password]);
echo$_POST[密码];
echo$hashedpassword;
如果($hashedpassword==$actualpassword){
echo“登录”;
}否则{
回显“密码不正确”;
echo$hashedpassword;
}
}否则{
回显“不正确的用户名”;
}
关闭输入标记是否可以解决问题?
此外,您还可以使用
isset($_POST["blabla"])
测试值是否在
$\u POST
中设置 您不应该使用SHA*系列对密码进行哈希运算。请参阅并执行$\u POST['password']
,而不是[password]
。@Gargron@LewisGoddard-因为它会导致一个非常讨厌且难以发现的错误,其他开发人员或外部库是否应该在某处定义一个名为password
的常量?是的!我以为HTML5意味着你不需要关闭像链接、元、img和输入项这样的东西?多么奇怪的怪癖啊。
if ( $_POST[username] == $actualusername ) {
// Hash the password
$hashedpassword = hash('sha256', $_POST[password]);
echo $_POST[password];
echo $hashedpassword;
if ( $hashedpassword == $actualpassword ) {
echo '<h2>Logged in</h2>';
} else {
echo '<h2>Incorrect password</h2>';
echo $hashedpassword;
}
} else {
echo '<h2>Incorrect username</h2>';
}
isset($_POST["blabla"])