我想加密我的网站上的密码使用PHP内的双向加密。我曾经接触过mcrypt库,但它看起来太麻烦了。有没有人知道其他更简单但又安全的方法?我确实可以访问Zend框架,所以使用它的解决方案也可以。
我实际上需要双向加密,因为我的客户想要进入数据库并更改密码或检索密码。
发布于 2009-03-15 11:22:51
您应该存储散列密码(和)。
世界上没有任何借口足以打破这条规则。
目前,结合使用crypt和CRYPT_BLOWFISH是最佳实践。
PHP中的CRYPT_BLOWFISH是Bcrypt hash的一个实现。Bcrypt基于Blowfish块密码。
Jeff在博客上写道:You're Probably Storing Passwords Incorrectly
如果您想使用标准库,可以查看:Portable PHP password hashing framework并确保使用CRYPT_BLOWFISH算法。
(一般来说,直接处理数据库中的记录是自找麻烦。
许多人-including非常有经验的数据库管理员-已经发现了艰难的方式。)
发布于 2009-03-15 09:12:13
不要加密密码。你永远不会真的需要解密它们,你只需要验证它们。使用mcrypt并不比什么都不做好得多,因为如果黑客闯入您的网站并窃取了加密的密码,他们也可能窃取用于加密密码的密钥。
为您的php应用程序创建一个单独的" password“函数,您可以在其中获取用户的密码,将其与一个salt连接起来,并通过sha 256散列函数运行结果字符串,然后返回结果。每当需要验证密码时,只需验证密码的散列是否与数据库中的散列匹配。
http://phpsec.org/articles/2005/password-hashing.html
发布于 2009-03-15 09:37:16
当您以后确实需要检索密码时,至少应该使用私钥和公钥,这样攻击者就会需要私钥(不应该存储在同一台机器上)来解密密码。
实现此目标的两个函数是openssl_public_encrypt()和openssl_private_decrypt()
https://stackoverflow.com/questions/647514
复制相似问题