【发布时间】:2011-01-20 17:41:16
【问题描述】:
众所周知,单向加密是一种在数据库中加密用户密码的便捷方式。这样,即使是数据库的管理员也无法知道用户的密码,而是必须猜测密码,使用相同的算法对其进行加密,然后将结果与数据库中的加密密码进行比较。这意味着找出密码的过程需要大量的猜测和强大的处理能力。
看到计算机速度越来越快,而数学家仍在开发这些算法,我想知道考虑到现代计算能力和加密技术,哪一个是最安全的。
多年来,我几乎一直只使用 MD5,我想知道是否还有其他事情要做。我应该考虑使用不同的算法吗?
另一个相关问题:对于这样的加密密码,字段通常应该多长时间?我必须承认我对加密几乎一无所知,但我假设 MD5 哈希(例如)可以更长,并且可能需要更多的处理能力来破解。或者字段的长度根本不重要,只要加密的密码首先适合它?
【问题讨论】:
-
哈希函数不是加密函数。加密函数具有反函数来解密加密值以获得原始值。但是哈希无法解密。只能找到冲突(导致相同哈希值的输入值)。
-
任何给定哈希函数/算法的输出总是相同的长度。对于 MD5,无论输入位/字节/字符串的长度如何,它始终为 128 位。
-
不用担心字段的长度。在几乎所有情况下,猜测密码并对其进行散列处理都比暴力破解要快得多,而且 128 位足够大,足以抵御暴力攻击,直到宇宙热死。
-
要了解哈希函数的最新信息,请查看 eHash Wiki,尤其是哈希函数 Zoo ehash.iaik.tugraz.at/wiki/The_Hash_Function_Zoo。
标签: algorithm security passwords md5 password-hash