两个不同的字符串可以生成相同的MD5哈希码吗?

2023-12-01

我们为每个二进制资产生成一个 MD5 哈希值。这用于检查某个二进制资产是否已在我们的应用程序中。但是两个不同的二进制资产是否有可能生成相同的 MD5 哈希值。那么两个不同的字符串有可能生成相同的 MD5 哈希值吗?


对于一套甚至数十亿的资产来说,随机碰撞的可能性小到可以忽略不计——没什么你应该担心的。考虑到生日悖论,给定一组 2^64(或 18,446,744,073,709,551,616)资产,概率a single该集合内的 MD5 冲突为 50%。按照这种规模,您可能会在存储容量方面击败 Google。

然而,由于 MD5 哈希函数已被破坏(它很容易受到碰撞攻击), any 坚定的攻击者可以产生 2 个冲突资产几秒钟内即可消耗 CPU 功率。因此,如果您想使用 MD5,请确保此类攻击者不会损害您应用程序的安全!

另外,请考虑以下后果:攻击者可能会伪造与现有资产的冲突在你的数据库中。虽然没有此类已知的攻击(原像攻击)针对 MD5(截至 2011 年),通过扩展当前对碰撞攻击的研究,这可能成为可能。

如果这些结果成为问题,我建议查看 SHA-2 系列哈希函数(SHA-256、SHA-384 和 SHA-512)。缺点是它的速度稍慢并且哈希输出更长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个不同的字符串可以生成相同的MD5哈希码吗? 的相关文章

  • $scope.$digest 之后立即触发事件

    在我的 AngularJS 应用程序中 有几个点我想等待 scope被处理到 DOM 中 然后在其上运行一些代码 就像 jQueryfadeIn 例如 有没有办法监听某种 digestComplete 消息 我当前的方法是 设置后立即 sc
  • 不同文件大小的哈希冲突与相同文件大小的哈希冲突的可能性相同吗?

    我对大量文件进行哈希处理 为了避免哈希冲突 我还存储了文件的原始大小 这样 即使存在哈希冲突 文件大小也不太可能相同 这是听起来的声音吗 哈希冲突同样可能是任何大小 还是我需要另一条信息 如果冲突更有可能与原始长度相同 或者 更一般地说 无
  • 从 HoA 值中获取独特元素并打印

    我有一个 HoA 其中包含某些值 我只需要 HoA 中的独特元素 预期结果 Key 1 Element ABC DEF Key 2 Element XYZ RST Key 3 Element LMN 下面是我的脚本 usr bin perl
  • 当今常用的最强哈希算法是什么?

    我正在构建一个 Web 应用程序 并希望对密码使用最强的哈希算法 sha512 whirlpool ripemd160 和 Tiger192 4 之间有什么区别 如果有 哪一个在密码学上被认为更强 bCrypt 为什么会是一个很长的解释 我
  • AES 在 cryptojs 中加密并在 python Crypto.Cipher 中解密

    使用 js CryptoJS 加密并使用 python crypto Cipher 解密时出现问题 这是我在js中的实现 附加 iv 与加密消息并使用 base64 进行编码
  • 拥有 n (2048 位数字),如何找到满足 n = p*q 的两个数字 p 和 q,其中 p = r||s (r 和 s 连接)和 q = s||r?

    我正在使用 RSA 加密 解密系统 并且我有模数 n 这是一个 2048 位数字 我需要找到 p 和 q 它们满足 n p q 并且都是素数 给我的线索是 p 等于 q 但其位颠倒了 正如我在本文标题中所说的那样 具体来说 r 和 s 具有
  • VB.NET 密码哈希函数的 PHP 等效项 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有以下 Visual Basic NET 函数 用于生成存储在内部数据库中的密码哈希值 Public Function HashPass
  • 保序最小完美哈希函数

    我想用 C 为字典中的单词实现 OPMPH 函数 我该怎么做 Thanks 你看过这些论文吗 http dx doi org 10 1016 0020 0190 92 90220 P http dx doi org 10 1016 0020
  • 四个无符号整数的哈希函数 (C++)

    我现在正在编写一个程序 它生成四个无符号 32 位整数作为某个函数的输出 我想对这四个整数进行哈希处理 这样我就可以将该函数的输出与未来的输出进行比较 不过 我在编写一个像样的哈希函数时遇到了麻烦 当我最初编写这段代码时 我对四个整数分别进
  • RADIUS 使用 MD5 算法是否会导致允许 RADIUS 身份验证的应用程序无法通过 FIPS 验证?

    问题是 如果您在 Windows 安全策略设置中强制执行 FIPS 验证的加密 则会引发异常 因为 RADIUS 协议使用 MD5 算法对请求身份验证器进行哈希处理 没有经过 FIPS 验证的替代 MD5 算法 因此在提供 FIPS 验证加
  • JavaScript 文件中的快速低冲突非加密哈希

    我正在寻找一种用 JavaScript 实现的低冲突的快速哈希 它不需要是加密哈希 我基本上使用它作为查看给定文件是否已上传 或部分上传 到用户帐户的方式 以节省他们在大型 视频 文件上上传的时间 我正在使用新的 HTML5 文件 API
  • Excel中的MD5哈希函数?

    我想将文档中的多个 Excel 单元格从序列号转换为该序列号的 MD5 哈希值 excel中是否有预编译公式可以做到这一点 或者是我执行VBA的唯一选择 如果是VBA 我该怎么做 问题中的一些链接Excel VBA 的密码哈希函数 http
  • 在 C# 中创建我的对称密钥

    一直在审查一些对称加密方法 我看到了很多在类中硬编码私有静态变量的示例 通常类似于 string key THISISYOURENCRYPTIONKEY 然后在更远的地方 代码使用它来加密 解密 抛开正确的实现 算法 策略以及存储它的位置
  • ruby 的 String .hash 方法如何工作?

    我只是红宝石的新手 我见过一个字符串方法 String hash 例如 在irb 我试过了 gt gt mgpyone hash returns gt 144611910 这个方法是如何工作的 The hash方法是为所有对象定义的 看文档
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • 如何使用 JNDI 和 Digest-MD5 对 LDAP 进行身份验证

    我正在尝试使用 DIGEST MD5 加密对 LDAP 服务器进行身份验证 使用简单加密时 它工作得很好 但由于显而易见的原因 我无法通过网络以纯文本形式发送密码 奇怪的是 在使用 Softerra LDAP 浏览器时 我可以使用 Dige
  • 如何在c#中加载私有ecdsa密钥es256?

    我使用以下命令生成 ES256 私钥和公钥 创建私钥 openssl ecparam genkey name prime256v1 noout out private pem 创建公钥 openssl ec in private pem p
  • 密文窃取算法 - 哪一种是正确的?

    网络上提出了两种算法 在这两种算法中 第一部分是相同的 1 Pad the last partial plaintext block with 0 2 Encrypt the whole padded plaintext using the
  • 在 C# 中使用 SHA1 算法进行哈希处理

    我想哈希给定byte 数组与使用SHA1算法与使用SHA1Managed The byte 哈希值将来自单元测试 预期的哈希值是0d71ee4472658cd5874c5578410a9d8611fc9aef 区分大小写 我怎样才能实现这个
  • 我可以调整移出的矢量的大小吗?

    我有一些代码 我想在其中绝对确保移出的代码std vector不会留下秘密数据 考虑加密密钥管理 在我的班级的移动构造函数中 我做了类似的事情 X X rhs secret vector std move rhs secret vector

随机推荐