是否有可能在服务器端加密并在客户端解密(使用javascript)

is it possible to encrypt at server side and decrypt it on the client side (using javascript)?

本文关键字:使用 javascript 解密 有可能 服务器端 加密 是否 客户端      更新时间:2023-09-26

我有一个场景,我必须加密在服务器端(使用java)和解密相同的数据在客户端(使用任何JavaScript库)使用非对称密钥加密,因为我们想从服务器端发送一些敏感信息。我的问题是-

  1. 这真的可能吗?如果是,怎么做?
  2. 如果没有?为什么?

如果真的有可能,那么请提供任何链接或任何例子来开始,请提供替代方案,只有在不可能的情况下(我知道我们有SSL,但请把这个放在一边)。

我将继续并留下一个答案:

没有SSL是不可能防止中间人攻击的。如果有人要发起这样的攻击,他们可以简单地修改JavaScript以删除您正在使用的任何加密-或者只是在解密后使用数据。

简而言之:是的,在JavaScript中可以加密和解密数据,但是,它并没有真正受到保护。

查看此答案获取更多信息:https://stackoverflow.com/a/6121236/2155492

在我看来,这是可能的,但没有意义

  1. 你必须发送带有加密数据的密钥
  2. 你的javascript代码是可见的。

如果您动态生成密钥并将其绑定到会话,那么每个使用它们的人都将拥有唯一的密钥,这可能是可能的,但我认为这仍然不是很安全。