javascript - 如果您拥有同一字符串的解密和加密版本,是否可以反向生成 RSA/AES key ? (JS客户端加密)

标签 javascript encryption cryptojs

尝试对 Angular 中的某些配置凭据(不敏感)进行一些客户端加密。但如果我使用错误的凭据导入模块,一切都会崩溃。

因此,在决定加载模块之前,我事先考虑是否可以用一个小字符串测试加密 key 是否正确或错误。

这需要我在我的客户端代码中拥有同一字符串的解密和加密版本,这导致我试图找出有人是否可以使用它。

最佳答案

有现代专业级算法吗?不。 这是一个安全漏洞(已知明文或“crib”攻击),自 Enigma 时代以来一直是人们关注的问题,当然,这也是随后非对称加密的主要设计目标。

例如,AES 会在明文上多次迭代 key ,直至无法计算反向函数。 攻击者剩下的方法是以暴力方式运行 key 。如果明文字符串比 key 短,那么我们可以在此时放弃这个想法,因为没有足够的信息。 如果字符串和 key 一样长,并且 key 是专业长度,那么这种暴力破解将是一个“宇宙末日所有计算能力”的问题。

关于javascript - 如果您拥有同一字符串的解密和加密版本,是否可以反向生成 RSA/AES key ? (JS客户端加密),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60527016/

相关文章:

javascript - 加密 (cryptojs) - 解密 (.NET)

javascript - fullCalendar - 首次加载时未应用属性

javascript - 如果传递的是数组而不是对象,则 json-schema 通过验证

javascript - 在性能下降之前,浏览器可以安全地处理多少个元素 ID?

ios - 在 iOS 中离线打开和存储加密文档

java - 为什么两个相同的文本生成不同的密文

javascript - CryptoJS 中的 AES-CTR 与 PyCrypto 兼容吗?

javascript - 在 Node-soap (node.js) 中发送带有数组的请求

database - 需要有关在 Android 上加密/解密存储在 SQLite 数据库中的数据的好方法的建议

javascript - 在 python 中加密 - 在 Javascript 中解密