Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php解密哈希密码?_Php - Fatal编程技术网

如何使用php解密哈希密码?

如何使用php解密哈希密码?,php,Php,我目前正在使用MD5和SHA1将用户的密码保存到数据库中,但我不知道如何以纯文本的形式将其恢复。我试图回滚我用来加密密码的代码,但它给了我一个错误 我用来加密密码的代码: $hashedpassword = md5(md5(sha1(sha1(md5($normalpassword))))); 我试着这样做 $normalpassword = md5(md5(sha1(sha1(md5($hashedpassword))))); 然后我意识到这很有趣:(!!请帮帮我…MD5和SH

我目前正在使用MD5和SHA1将用户的密码保存到数据库中,但我不知道如何以纯文本的形式将其恢复。我试图回滚我用来加密密码的代码,但它给了我一个错误

我用来加密密码的代码:

   $hashedpassword = md5(md5(sha1(sha1(md5($normalpassword)))));
我试着这样做

   $normalpassword = md5(md5(sha1(sha1(md5($hashedpassword)))));

然后我意识到这很有趣:(!!请帮帮我…

MD5和SHA-1是单向散列函数,这意味着您无法从散列值中获取原始字符串。

您不能。散列是一种方式,您必须在登录表单中生成输入的新散列,并检查它是否等于存储的散列。

如果最终需要输入,为什么还要对它们进行加密m back?使用哈希正是因为无法以明文形式获取密码


如果你想找回它们,请使用对称密码。

散列不是加密

像MD5和SHA1这样的散列函数无法反转,只能验证。这通常是使用散列函数的要点,因为攻击者无法用散列检索清晰的密码(其他攻击,如使用彩虹表也是可能的)

更多详细信息可在此处找到:


如果你想在数据库中存储散列密码,请看一看。这是一个很好的php类,可以尽可能好地散列和验证密码,并且在现代基于php的web应用程序中广泛使用。

散列是一种方法,你永远无法将其还原,唯一的方法是使用暴力攻击!@MarkGarcia它到底有什么可能不同的结果?为什么会有这么多的反对票?你问了一个问题来学习,这显然在这里起了作用。我可以想象许多其他人在谷歌上搜索类似的东西。@MarkGarcia你说的毫无意义。MD5和SHA1只依赖于他们的输入。组成部分也是如此。@Ineentho,因为这不是一个特别好的问题。它是表示OP实现了一些他根本不懂的东西。如果他在文档中查找
md5
sha1
函数,这个问题就没有必要了。好吧..我明白了!所以每次他们登录时我都需要散列用户密码,并检查用户输入的散列密码是否与数据中的密码匹配基本…好的,谢谢..我正在为我的脚本设计一个Facebook连接日志系统,这样我就不能更改密码加密的原始代码..我的想法是把它们取回并做一些事情..无论如何thnx。。