【问题标题】:is it possible to encrypt at server side and decrypt it on the client side (using javascript)?是否可以在服务器端加密并在客户端解密(使用javascript)?
【发布时间】:2014-07-04 01:15:29
【问题描述】:

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

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

如果真的有可能,那么请提供任何链接或任何示例以开始,并且仅在不可能的情况下才提供替代方案(我知道我们有 SSL,但请把它放在一边)。

非常感谢任何帮助。

【问题讨论】:

  • javascript 是在网络浏览器中运行还是类似于 Node.js 库?我的意思是:如果您必须将 JavaScript 库发送给另一方(Web 浏览器),那么您必须使用 SSL 来防止中间人攻击。但是,如果它是 Node.js 并且最终“用户”已经拥有 JavaScript 代码(并且您可以验证它的来源),那么您也许能够找到解决方案。
  • 从这里查看#1 答案以获取更多信息:stackoverflow.com/questions/6116883/…

标签: java javascript cryptography encryption-asymmetric javascript-security


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回复。你能给我提供任何描述如何做到这一点的过程的链接,意味着生成唯一的(我认为是私有的)密钥并将它们绑定到会话?
【解决方案2】:

我将继续并留下答案:

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

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

有关更多信息,请参阅此答案:https://stackoverflow.com/a/6121236/2155492

【讨论】:

  • 谢谢,但我认为您说的是在客户端加密和在服务器端解密,而我在这里说的是相反的。
  • 加密或解密的方向无关紧要。通过使用不安全的 HTTP,您打开了让某人坐在服务器和客户端之间的可能性。他们可以更改您的 javascript 来做任何他们想做的事情。他们可以简单地添加一个函数,在您的 javascript 解密加密消息后将该数据发送到他们的服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2015-10-29
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多