1

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

  1. 真的有可能吗?如果是的话如何?
  2. 如果不是?为什么?

如果真的有可能,请提供任何链接或任何示例开始,请提供替代品只有当它不可能(我知道我们有SSL,但请保留这一点)。

任何帮助,非常感谢。

+1

是在Web浏览器的JavaScript正在运行或者是它像一个Node.js的图书馆吗?我得到的是:如果您必须将JavaScript库发送给另一方(Web浏览器),那么您必须使用SSL来防止中间人攻击(man-in-the-middle)。但是,如果它是Node.js并且最终'用户'已经拥有JavaScript代码(并且您可以验证它的来源),那么您可能会找到解决方案。 – Randy

+0

请参阅#1答案从这里获取更多信息:http://stackoverflow.com/questions/6116883/are-there-any-asymmetric-encryption-options-for-javascript – Randy

回答

2

我要继续前进,留下一个答案:

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

简而言之:是的,可以使用JavaScript对数据进行加密和解密,但是它并没有真正的保护。

看到这个答案的其他信息:https://stackoverflow.com/a/6121236/2155492

+0

谢谢,但我想你是在谈论在客户端加密和在服务器端解密,我在这里说的是相反的。 – Novice

+1

你需要加密或解密的方向并不重要。通过使用不安全的HTTP,您可以让某人坐在服务器和客户端之间的中间位置。他们可以改变你的JavaScript做任何他们想要的。他们可以简单地添加一个函数,在JavaScript解密加密的消息后,将该数据发送到服务器。 – Randy

1

在我看来,这是可能的,但毫无意义的

  1. 你必须与加密数据
  2. 你的JavaScript代码是可见的发送键。

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

+0

感谢您的答复。你能给我提供任何描述过程如何做的链接,意味着生成独特的(我认为是私人的)钥匙并将它们绑定到一个会话? – Novice

相关问题