目前,我正在使用我在网络上找到的代码加密数据库中的数据,并以此作为主题的介绍。这里,我的问题源于两篇WikiHow文章(这两篇文章对这些文章来说都是如此):一篇是关于登录加密的,另一篇是关于会话安全性的。这两篇文章看起来都很好;但是,两者之间有一个关键的区别:前一篇文章指出,使用的哈希算法有一个JavaScript定义($password = hash('sha512', $password . $salt)是PHP自身工作的必要条件)。
即使包含了PHP方法(在这两篇文章中都可以找到),第一篇文章的作者也指出,hash()加密本身必须使用另一种语言进行外部定义(作者建议使用JavaScript)。
通过阅读PHP文档,我的印象是hash()能够处理一系列由标识符(例如whirpool、sha512等)识别的预定义哈希算法,这些PHP标识符可以通过hash_algos() (或者您只需阅读文档)来获取。
我是否错误地认为,对特定预定义哈希算法的外部定义是不必要的?
发布于 2014-10-17 13:53:55
我认为没有必要使用javascript对字符串进行散列。
就我个人而言,我宁愿使用bcrypt,也不愿使用sha512,但没关系,它并不是一个真正的弱算法。
$password = hash('sha512', $password . $salt)这是一个很好的破解密码的方法,如果你想全力以赴,你可以查找PBKDF2。
http://en.wikipedia.org/wiki/PBKDF2 https://defuse.ca/php-pbkdf2.htm
https://stackoverflow.com/questions/26426494
复制相似问题