【问题标题】:Custom JS encryption algorithm over http?http上的自定义JS加密算法?
【发布时间】:2014-09-10 01:25:52
【问题描述】:

我知道在客户端和服务器之间传输数据最安全的方式是 HTTPS,但我一直在想,在将用户输入发送到服务器 (AJAX) 之前加密用户输入是否可行?然后服务器相应地处理它......我看不出有什么办法,即使有人嗅到加密数据来解密它,例如他们使用的 Enigma 加密方法,即使它被解密,方法总是可以改变。

那么这会奏效吗?有什么顾虑?

谢谢!

【问题讨论】:

  • 是的,您可以在 http(s) 之上使用任何类型的私钥加密和多种形式的公钥。这包括大多数密码。问题是让客户端和服务器使用相同的密钥而不通过网络发送。

标签: javascript http encryption


【解决方案1】:

首先,您应该知道 HTTPS 实际上有多个用途。除了加密之外,还可以验证您认为正在与之交谈的服务器(在某些情况下是客户端)实际上是您认为正在与之交谈的那个客户端。对于任何需要安全的东西,您都应该使用 HTTPS。

现在,如果出于学术原因或特定用例您想使用 JavaScript 加密,是的,这是完全可能的。我推荐一种非对称算法,例如 RSA。它有 JavaScript 实现。用于加密的密钥与用于解密的密钥不同。因此,即使知道加密密钥(如果有人在嗅探数据包,也会知道),窃听者将无法解密数据。

这是我之前为此目的使用过的一个 JavaScript 实现:http://www.ohdave.com/rsa/

请记住...犯错的机会很高。通过使用 HTTPS,您可以使用由安全专家进行大量测试的实现,并且您不必重新发明轮子。尽可能使用已经存在的东西。

【讨论】:

  • 如果 SSL ECHO 已经过广泛测试... ;-)
  • 如果你明白我的意思的话,我更喜欢没有密钥的普通加密。例如,我发送字符串'SK0XO2D'...服务器有一个解密方法将其转换为'Hello'...
  • @user2818626 所有有用的加密都使用某种密钥。
猜你喜欢
  • 2015-10-21
  • 2022-01-07
  • 2023-03-07
  • 2013-12-27
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
相关资源
最近更新 更多