ColdFusion中最安全的哈希算法是什么?

时间:2014-01-22 13:15:43

标签: encryption hash coldfusion coldfusion-9 password-encryption

在ColdFusion 9(非企业版)中使用的最安全的哈希算法是什么?

根据CF documentation,这些是选项:

  

MD5:(默认)生成一个32个字符的十六进制字符串,使用   MD5算法(ColdFusion MX和之前使用的算法)   版本)。

     

SHA:使用安全哈希标准生成一个40个字符的字符串   国家标准与标准协会规定的SHA-1算法   技术(NIST)FIPS-180-2。

     

SHA-256:使用SHA-256算法生成44个字符的字符串   由FIPS-180-2规定。

     

SHA-384:使用SHA-384算法生成64个字符的字符串   由FIPS-180-2规定。

     

SHA-512:使用SHA-1算法生成128个字符的字符串   由FIPS-180-2规定。

但在this article中,它表示不使用MD5或SHA-1

我对cf文档也有点怀疑。它说编码“SHA-512”使用SHA-1,但企业版“SHA-512”的描述是“由FIPS 180-2和FIPS 198定义的512位安全散列算法”。 SHA-512的输出大于SHA-384。对不起,我很难理解所有这些不同的编码原则。

1 个答案:

答案 0 :(得分:3)

哈希本身并不安全,任何可以进行哈希处理的东西都可以被破坏。所以在安全领域你可能会想,好吧我需要多次运行哈希来更多地模糊它,但这并不能保护信息,它只是意味着有人必须重复同一个进程并多次迭代哈希。如果他们知道你使用的哈希算法并假设他们这样做,那就不安全了。除非您尝试保护信息,否则Sha-256应该足以用于散列信息。哈希永远不应该被用来保护信息。仅仅因为它不是人类可读的并不能使其安全。

如果你想保护某些东西,请使用coldfusion加密功能,并确保使用像AES这样的合适算法,因为coldfusion中的默认值是不安全的。然后,您需要使用您正在保护的信息中的一些熵数据,以确保您拥有一个难以猜测或找到的唯一加密密钥。不要在代码中对单个密钥进行硬编码,这样可以让人们轻松地在所有加密中查找和使用模式。

使用像bcrypt或scyrpt这样的东西来存储密码。我知道他们需要投入更多的工作,并且需要在coldfusion中进行java集成,但它们是更安全的存储信息的方式。请记住,即使使用bcrypt或scrypt,如果有足够的时间和有人愿意付出努力来解密信息,信息也会受到损害。确保信息安全时要偏执。