【发布时间】:2021-02-19 09:21:21
【问题描述】:
我们正在尝试使用 RSA 公钥加密客户端 ReactJS 应用程序的一些细节(以将其安全地发送到后端)。但是,我们只是找不到合适的库来使用 RSA 直接使用密钥加密消息。
我们一直在引用this article,但我们无法关注这个。
问题:
- 是否有任何简化的库可以在 reactJS 中使用 RSA?
- 根据文章,我们正在尝试使用 EncryptJS。所以,它说在静态文件夹中添加 jsencrypt.min.js(缩小)文件。 (我希望这是创建构建后的静态文件夹)。我们将如何使用它?
- 帖子说,“在反应组件中使用脚本标签将其添加为脚本”。这是什么意思?我必须将它作为脚本添加到 index.html 中吗?还是组件中的某处?
【问题讨论】:
-
我不了解 reactJS,但您确定客户端 JS 加密是您想要实现的目标的正确答案吗?使用 HTTPS 时,TLS 已经保护了您发送到服务器的内容。您能否详细说明您的目标?
-
嘿@ShellCode 当然。所以我们在客户端有一个要加密的密码。一旦用户登录,我们将在客户端保留密码一段时间。所以我们计划以加密形式保存它,因为它只会被服务器使用(可以解密)。因此,为了安全地保存它,只要它保存在客户端,我们就想对其进行加密。
-
您想保护它免受什么影响?如果您将此加密密码发送到服务器,窃取此加密密码的攻击者也可以这样做,即使他不知道里面有什么。最后,窃取加密密码或窃取密码本身与攻击者 POV 相同。如果对您来说重要的是隐藏密码的值,那么使用哈希(带盐)会更合适,不需要为此使用 RSA!
-
感谢@ShellCode。明白了:)
-
您是说客户端不需要访问此密码,只需要访问服务器。在这种情况下,客户一开始就不应该拥有密码。无论客户端从哪里获取它,都应该已经对其进行加密,然后客户端可以将其传递给可以根据需要解密的服务器。 (在这种情况下,还要考虑相关的攻击,如重放。)如果可能的话根本不经过客户端会更好,但问题是缺少所有需要回答的相关细节。
标签: reactjs security rsa public-key-encryption