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

时间:2012-08-27 17:08:24

标签: php

  

可能重复:
  How to output MD5 hashed password in plain text?

我有一点问题,下面是nmy代码是一个'$ teacherpassword'变量,其中包含用户密码及其周围的盐(随机字符)。

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

现在让我们说passowrd是“Cricket”,然后如果我回显$teahcerpassword,它不会输出单词“Cricket”,它会输出密码hash,即“1ac30ef9e714fff0ab12b398e379f358”。

我希望它输出“Cricket”这个词。如何让它输出密码字本身而不是密码哈希?

7 个答案:

答案 0 :(得分:4)

哈希的意思是它是单向的。它与加密不同,加密是双向的。

你无法取消哈希值。

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

答案 1 :(得分:2)

这是不可能的,哈希阻止了这一点。散列算法将无论如何长输入短接到恒定长度输出。不可能倒退。

在普通哈希算法中,使用的是模运算符,可减少信息数量。删除的信息无法恢复。但是可以通过使用所谓的彩虹表来获取密码。但请注意,如果使用盐,这要复杂得多。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

这是一个功能。它可以提高安全性,因为唯一可以访问原始密码的人就是创建密码的人。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

你可以创建一个字典,其中有一些单词和生成的哈希值,但哈希的一般概念是提取原始单词在计算上很困难

答案 6 :(得分:0)

输出MD5哈希是不可能的。 MD5只是一种方式。如果您需要密码,则必须设置一个新密码。或者使用开膛手约翰'破解它...