如何输出密码本身,而不是密码哈希


How to output the password itself, not the password hash?

可能重复:
如何以纯文本输出MD5散列密码?

我有一个小问题,下面是nmy代码是一个"$teacherpassword"变量,它包含用户的密码,周围有salt(随机字符)。

$teacherpassword = md5(md5("g3f".$teacherpassword."rt4"));

现在假设密码是"Cricket",那么如果我回显$teahcerpassword,它不会输出单词"Cricket",而是输出密码哈希,即"1ac30ef9e714fff0ab12b398e379f358"。

我想让它输出单词"蟋蟀"。如何让它输出密码词本身而不是密码哈希?

散列的意义在于它是单向的。它不同于双向加密。

你不能取消散列。

http://en.wikipedia.org/wiki/MD5

这是不可能的,哈希阻止了这一点。哈希算法将任意长度的输入缩短为恒定长度的输出。这是不可能倒退的。

在一个普通的哈希算法中,使用了模运算符来减少信息计数。无法恢复已删除的信息。但是,使用所谓的彩虹表可以取回密码。但请注意,如果使用盐,情况会复杂得多。

如果您想验证用户是否输入了正确的密码。。。还对输入的值进行散列,并匹配这两个散列;-)。

使用哈希代替加密密码,使其他人(包括系统管理员)无法获取某人的密码。您可以匹配哈希,但无法从中检索原始密码。

这是一个特点。它有助于提高安全性,因为只有创建原始密码的人才能访问原始密码。

哈希是一种单向加密。无法从哈希中获取密码。

您可以制作一个字典,其中包含一些单词和生成的哈希,但哈希的一般概念是提取原始单词在计算上很困难

是否无法输出MD5哈希。MD5只是一种方式。如果你想要密码,你必须设置一个新的。或者使用"开膛手约翰"破解它…