当前位置: 首页 > 知识库问答 >
问题:

使用MD5和SHA1进行多次哈希

寿亦
2023-03-14

使用md5和sha1对同一个变量进行散列,是否会使字符串更难解密并提高安全性?

将同一字符串的MD5和SHA1版本串联起来,然后最后用password_hash()中的任何一个再次哈希,是否有帮助?

共有1个答案

陶炫明
2023-03-14

将同一字符串的MD5和SHA1版本串联起来,然后最后用password_hash()中的任何一个再次对其进行散列,这会有帮助吗?“

不,只是“不”。只会让事情变得更糟。

您不需要甚至不应该多次并一起使用MD5/SHA1和password_hash();你只需要用一次;“它”是password_hash()。如果你多次使用这种方法,你的验证就不会起作用,相信我的话。

使用password_hash()一次,然后使用password_verify()进行验证。

参考资料:

  • http://php.net/manual/en/function.password-hash.php
  • http://php.net/manual/en/function.password-verify.php

然而,这并不能阻止您将它们用于其他用途;例如在帐户验证时发送给用户的令牌。然而,有一些更好的方法可以做到这一点,但这超出了问题的范围。

 类似资料:
  • 这些散列密码的方法中,哪一种最安全,最难发现散列冲突? 仅MD5 仅SHA1 通过SHA1MD5

  • 问题内容: 我对加密/哈希知之甚少。 我必须对加密密钥进行哈希处理。Java中的示例是这样的… 现在,如果我错了,请纠正我,但是上面的代码使用MD5算法对字符串进行了哈希处理。 当我在C#中哈希相同的字符串时,我希望得到相同的结果。 我当前的C#代码看起来像这样… 但是末字节结果不匹配。 Java得到… C#得到… 我需要C#代码才能获得与Java代码相同的结果(不是相反),有什么想法吗? 谢谢。

  • 问题内容: 在Objective-C中,它看起来像这样: 我需要Swift这样的东西,可以吗? 请显示工作示例。 问题答案: 您的Objective-C代码(使用类别)可以直接转换为Swift(使用扩展名)。 首先,您必须创建一个“桥接头”并添加 然后: 这可以写得更短和更快速 Swift 2更新: 要返回以Base-64编码的字符串而不是十六进制编码的字符串,只需替换 与 Swift 3更新:

  • 问题内容: 给定密钥,有什么办法可以解密加密的MD5字符串? 问题答案: 尝试使用Google(请参阅使用Google破解MD5密码)或包含md5()之类的MD5散列的在线数据库;或GDATA(最后一个包含1,133,766,035个唯一条目)。

  • 好吧,这里都是我的问题。我正在尝试用MD5哈希加密字符串。下面是我试图哈希的字符串: 以下是预期输出: 下面是我在Android应用程序中得到的信息: 下面是我正在使用的代码: 在Android上运行这段代码时,我得到了上述意想不到的结果,但当我运行这段代码时,就像一个Java程序传递相同的字符串一样,我得到了预期的输出... 究竟是怎么回事?几天来,我一直被这件事难住,在网上搜寻线索。我已经尝试

  • 我在执行一个为给定文件计算MD5和SHA1校验和的方法时遇到一个问题。我的方法如下所示: SHA1: MD5: 在执行其中一个方法时,我得到一个IOException:进程无法访问文件“(PATHTOFILE),因为另一个进程正在使用它。 这是一个持续存在的问题,我无法计算PC上任何文件的校验和。我以本地管理员身份登录,而VS以管理员身份打开。这对于我尝试过的任何目录都是持久的,例如:C:\tem