可能重复:
如何以纯文本输出MD5散列密码?
我有一个小问题,下面是nmy代码是一个"$teacherpassword"变量,它包含用户的密码,周围有salt(随机字符)。
$teacherpassword = md5(md5("g3f".$teacherpassword."rt4"));
现在假设密码是"Cricket",那么如果我回显$teahcerpassword
,它不会输出单词"Cricket",而是输出密码哈希,即"1ac30ef9e714fff0ab12b398e379f358"。
我想让它输出单词"蟋蟀"。如何让它输出密码词本身而不是密码哈希?
散列的意义在于它是单向的。它不同于双向加密。
你不能取消散列。
http://en.wikipedia.org/wiki/MD5
这是不可能的,哈希阻止了这一点。哈希算法将任意长度的输入缩短为恒定长度的输出。这是不可能倒退的。
在一个普通的哈希算法中,使用了模运算符来减少信息计数。无法恢复已删除的信息。但是,使用所谓的彩虹表可以取回密码。但请注意,如果使用盐,情况会复杂得多。
如果您想验证用户是否输入了正确的密码。。。还对输入的值进行散列,并匹配这两个散列;-)。
使用哈希代替加密密码,使其他人(包括系统管理员)无法获取某人的密码。您可以匹配哈希,但无法从中检索原始密码。
这是一个特点。它有助于提高安全性,因为只有创建原始密码的人才能访问原始密码。
哈希是一种单向加密。无法从哈希中获取密码。
您可以制作一个字典,其中包含一些单词和生成的哈希,但哈希的一般概念是提取原始单词在计算上很困难
是否无法输出MD5哈希。MD5只是一种方式。如果你想要密码,你必须设置一个新的。或者使用"开膛手约翰"破解它…