尝试对 Angular 中的某些配置凭据(不敏感)进行一些客户端加密。但如果我使用错误的凭据导入模块,一切都会崩溃。
因此,在决定加载模块之前,我事先考虑是否可以用一个小字符串测试加密 key 是否正确或错误。
这需要我在我的客户端代码中拥有同一字符串的解密和加密版本,这导致我试图找出有人是否可以使用它。
最佳答案
有现代专业级算法吗?不。 这是一个安全漏洞(已知明文或“crib”攻击),自 Enigma 时代以来一直是人们关注的问题,当然,这也是随后非对称加密的主要设计目标。
例如,AES 会在明文上多次迭代 key ,直至无法计算反向函数。 攻击者剩下的方法是以暴力方式运行 key 。如果明文字符串比 key 短,那么我们可以在此时放弃这个想法,因为没有足够的信息。 如果字符串和 key 一样长,并且 key 是专业长度,那么这种暴力破解将是一个“宇宙末日所有计算能力”的问题。
关于javascript - 如果您拥有同一字符串的解密和加密版本,是否可以反向生成 RSA/AES key ? (JS客户端加密),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60527016/