2012-08-27 58 views
0

你好这是我当前的代码我工作:哈希验证

$uname = "unholybanana"; 
$pass = "choykiller13"; 
$salt = salty(); 
$password = sha1 ($uname . $pass . $salt); 
echo $password; 

function salty() { 
    mt_srand(microtime(true)*100000 + memory_get_usage(true)); 
    return md5(uniqid(mt_rand(), true)); 
} 

到目前为止,我的问题是$密码回声$ UNAME + $散列通混合,但它不混盐任何人都可以指出这是一个问题。我目前只是将sha1用于学习目的,而不是直接用于scrypt和bcrypt。另外这是我会做的数据插入到数据库的内容:

$sql= "INERT into test SET uname='$uname', hashpass='$password', salt='$salt'"; 

将是巨大的,如果任何人都可以发现是否有与我上面插一个问题。

到目前为止,我不知道如何才能验证这一点。(语法)将不胜感激任何人会指出我在一个很好的方向。

但我认为它应该仍然考虑我将如何去编码这个。

 $checkpass= sha1 ($uname . $pass . $salt) == $hashpass; 

此外,我想补充$ UNAME因为我所有的unames的给予客户端,以便所有unames是这样的C-9183102。

谢谢任何​​帮助谢谢!

回答

2

你几乎肯定要

$sql= "INSERT into test SET uname='$uname', hashpass='$password', salt='$salt'"; 

,而不是INERT

+0

哈哈哈没有看到这个错字。 = d –