【发布时间】:2010-12-22 08:43:59
【问题描述】:
我正在实现一个应用程序,我必须在其中将加密密码插入 MySQL 数据库。然后在 ColdFusion 中使用 md5 加密 从数据库中检索解密后的密码。
如何在 ColdFusion 中对 MySQL 数据库使用 md5 加密?
【问题讨论】:
-
使用普通的 md5 是不好的。至少使用盐,最好使用密钥派生函数,如 PBKDF2
-
@CodeInChaos,PBKDF2 用于创建派生密钥。一个盐!=一个键。盐不应该以任何方式预测。换句话说,基于密码的密钥派生函数不适合密码散列。
-
@Jacco 您通常将密码和盐放入 KDF。而且我不明白为什么 KDF 不适合密码散列。所以不要调用 MD5(password+salt) 你调用 SomePBKDF(password,salt)
-
@Lea 最大的原因是它很快。因此,攻击者可以在短时间内散列许多潜在的密码。因此,推荐使用 pbkdf2 或 bcrypt 之类的构造,您可以在其中传入一个迭代计数参数来确定函数的运行速度。
-
@Lea 假设攻击者获得了对服务器的完全访问权限。因此他知道你的代码和你的数据库内容。盐的每个用户部分通常与哈希一起存储在数据库中。并且每个应用程序部分(如果完全使用)存储了某种配置文件,如果攻击者对服务器具有完全访问权限而不仅仅是数据库,则可以获取该配置文件。
标签: mysql security coldfusion-8 password-hash