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

Can you reverse-generate the RSA/AES key if you have the decrypted and encrypted version of the same string? (JS client-side crypto)

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

所以我在考虑是否可以在决定加载模块之前用一个小字符串测试加密密钥是否正确。

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

任何现代专业级算法?不。 这是一个安全漏洞(已知明文或 "crib" 攻击),自 Enigma 时代以来就一直受到关注,当然,这是随后的非对称加密的主要设计目标。

例如AES,对明文的密钥进行多次迭代,以至于无法计算逆函数。 攻击者剩下的方法是以暴力方式 运行 密钥。如果明文字符串比密钥短,那么我们现在可以放弃这个想法,因为没有足够的信息。 如果字符串和密钥一样长,并且密钥是专业长度,这种暴力将是一个 "all computing power by the end of the universe" 问题。