在使用PHP将密码存储到MySQL时尝试加密

在使用PHP将密码存储到MySQL时尝试加密,php,mysql,encryption,Php,Mysql,Encryption,我一直在读一些关于用PHP加密密码的encrytption文章,这些文章似乎都没有结论,读者评论说“你应该这样做,这太愚蠢了”。我一直在搞加密,我想到了这一点,因为我已经使用php好几天了,所以你可以说我是个傻瓜:) 你不需要盐。将密码传递给sha1是足够安全的。否则,您必须为每个用户存储salt。加密不同于散列 只需将您的密码传递到sha-1或md5(被认为已损坏),您将获得hashedText(更安全)。但是,它是无法逆转的。当salt是随机的时,您计划如何执行查找来验证密码?准备长时间阅

我一直在读一些关于用PHP加密密码的encrytption文章,这些文章似乎都没有结论,读者评论说“你应该这样做,这太愚蠢了”。我一直在搞加密,我想到了这一点,因为我已经使用php好几天了,所以你可以说我是个傻瓜:)



你不需要盐。将密码传递给sha1是足够安全的。否则,您必须为每个用户存储salt。

加密不同于散列


只需将您的密码传递到sha-1或md5(被认为已损坏),您将获得hashedText(更安全)。但是,它是无法逆转的。

当salt是随机的时,您计划如何执行查找来验证密码?准备长时间阅读:+只是为了更好地解释一下-通过对密码进行哈希运算,您可以防止密码以纯文本形式存储。因此,如果您的数据库遭到破坏,则不会公开密码。散列方法意味着您永远不会比较密码本身。您总是比较散列版本。因此,散列函数需要是可复制的,这在本例中是不可复制的,因为随机的salt查看此线程“Secure hash and salt for PHP passwords”嘿,给我发送指向您所做的站点的链接,这样我就可以看到一些东西了。
<?php 
    $salt = uniqid(mt_rand(), true);
    $hashedPassword = sha1( $userPassword . $salt );
?>