哈希验证

时间:2012-08-27 01:30:12

标签: php sql hash salt

您好这是我正在处理的当前代码:

$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));
}

到目前为止,我的问题是$ password echos $ uname + $ pass hashed mixed,但它不与salt混合,任何人都可以指出这个问题。我目前只是将sha1用于学习目的,而不是直接进行scrypt和bcrypt。这也是我将数据插入db:

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

如果有人能发现上面的插页有问题,那就太棒了。

到目前为止,我不知道如何验证这一点。(语法)会感激任何人都会指出我的方向。

但我认为应该继续思考如何编写这个。

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

另外我想添加$ uname,因为我的所有uname都被赋予了客户端,所以所有的uname都看起来像这个C-9183102。

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

你几乎肯定想要

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

而不是INERT