【问题标题】:Password Encryption with ColdFusion and MySQL使用 ColdFusion 和 MySQL 进行密码加密
【发布时间】:2011-11-02 06:31:02
【问题描述】:
我正在寻找有关在我的 ColdFusion/MySQL 应用程序中加密/解密密码的最佳方法的一些帮助/建议。我应该使用 MD5、SHA、BCrypt 吗?我应该直接在 MySQL 中进行加密还是使用 ColdFusion 来处理?
只是在这方面寻求一些帮助和一些例子来帮助我前进。
此应用程序的安全性非常重要,因为我们将存储敏感信息。
任何帮助都会很棒。
提前致谢。
【问题讨论】:
标签:
mysql
encryption
coldfusion
passwords
【解决方案2】:
如果您希望密码安全,请绝对不要使用 MD5,因为它可以被破解。也不推荐 SHA-1。
至少使用 SHA-256 会更安全,例如在 CF 中这样:
variables.hashedPassword = Hash(variables.Password,"SHA-256");
至于选择在哪里进行加密 - 这取决于您要使用它的确切用途,一次加密的密码数量等。如果只是一次,那并不重要。
【解决方案3】:
我使用 ColdFusion 进行所有加密/解密。 ColdFusion 让它变得非常容易。我通常使用 Blowfish 加密并让 ColdFusion 生成密钥值。然后在 Application.cfm 文件中将其设置为静态值。
这里有更多信息:Enrypt()。
【解决方案4】:
很高兴您关心密码的强哈希。我会推荐使用scrypt 库。 Colin Percival 发明了它以与 tarsnap 一起使用,他对 scrypt 进行了很好的比较,可在 tarsnap 网站上找到(抱歉,由于 rep
我通常对加入使用加密货币的潮流持谨慎态度,这种加密货币使用时间不长,并且得到了加密货币社区的充分审查。因此,我对使用 scrypt 有点保留,因为在这方面它仍然相当“新”。我通过 Twitter 咨询了安全专家Steve Gibson 关于这个问题,这是他的回复:
@SGgrc 对使用 bcrypt 与 scrypt 的 PBKD 进行 Web 应用程序有什么想法吗? [原文]
@geekmuse SCrypt 比对硬件加速的抵抗力更强
加密货币。所以我想说,如果您的应用程序可以使用它,请使用它。 :)
@SGgrc 会的——感谢您提供的信息!我唯一的犹豫是
加密社区似乎没有那么彻底地审查。
@geekmuse 明白了,在加密货币中,保守永远不会
错误的。但目前,SCrypt 是最好的内存硬解决方案
可用。
此外,ColdFusion 的内置加密(至少是企业版)使用 RSA BeSafe 的库,现在强烈怀疑该库因 NSA 而受到损害(取决于使用哪种 PRNG,但仍然......),所以通过查看一些最近发布的算法,您正在做正确的事情。
Github (github.com/wg/scrypt) 上有一个基于 Java 的 scrypt 实现,它应该非常适合在您的 ColdFusion 应用程序中使用。
最后,虽然我知道您的问题特别提到了用户密码的强加密,但取决于您存储的数据的敏感性,您可能还需要认真考虑在敏感数据还在数据库中时对其进行加密.这样,如果您的数据被泄露,您可以更轻松地知道它是静态加密的(除非您的密钥也被泄露,但您希望将其存储在与应用程序实际数据库不同的位置进入)。