解密、在React Native中使用MD5加密数据

3

我想知道如何在React Native中解密和加密MD5数据。能否帮我一下?我在网上找不到任何教程。我已经添加了MD5库进行加密,但我无法解密该代码。如果您也了解加密,请解释一下。我该如何在React Native代码中使用它。谢谢。

1个回答

2

MD5 不是加密算法!它是一种用作哈希函数的消息摘要算法。

密码哈希函数是单向确定性压缩函数,其行为类似于随机函数。

  • 单向意味着不存在反函数,
  • 确定性意味着相同的输入会产生相同的输出,
  • 压缩意味着输入大小可以是任意长度,但输出大小由哈希函数固定。MD5 的摘要大小为 128 位。
  • 随机意味着在计算之前无法预测哈希函数的输出。

理论上,MD5 的预像抗性已经被攻破,但实际上没有。替代具有 2128 复杂度的通用预像攻击,存在一种需要 2123.4 复杂度的攻击方法。然而,MD5 实际上并未被攻破。在有意义的时间内,您无法到达 123 位搜索空间。考虑 BitCoin 矿工的集体能力;在 2020/1/17,他们达到了每秒 126.1314 艾哈希,这意味着:

  • 每秒可以进行 267 次 SHA256 双重哈希,以及
  • 每年可以进行 292 次 SHA256 双重哈希。因此,需要使用该功率进行 221 年。

然而,您可以找到 MD5 的碰撞。有两个好的库可以生成碰撞:corkamihashclash

对于加密,请使用 AES 或 ChaCha20,并使用适当的模式,如 AES-GCM 或 AES-GCM-SIV 和 ChaCha20-Poly1305,两者都提供认证加密,可获得机密性、完整性和身份验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接