【问题标题】:RSA Cryptography javascriptRSA 密码学 javascript
【发布时间】:2011-07-06 22:03:18
【问题描述】:

我正在尝试为我创建的 RESTful Web 服务构建用户登录/身份验证客户端。 但是,在尝试使用身份验证 API 的可用 JAX-RS 设置身份验证时,我遇到了一些麻烦并决定改变方法。现在,我真正想做的是: 该网页向一个 uri(用户/登录名)发送一个 ajax POST 请求,其中包含他的电子邮件和由“:”符号分隔的密码。然后,该消息正文将在客户端使用一些 JavaScript 库使用 RSA 算法进行加密,并在服务器端解密。

问题是:我使用 Java 生成 PublicKey,它们存储为 base64 字符串,使用 X509 填充编码。

如何仅使用 JavaScript 解码这个表示公钥的编码字符串,并实际使用它来加密某些文本?

提前致谢!

【问题讨论】:

  • 为什么要在客户端加密?在 JavaScript 中?为什么不使用 SSL?
  • 如果您的加密是客户端,如果我可以 MITM 并使用您的客户端源对其进行解码,那么加密它的意义何在?使用 SSL 会更好。
  • 我使用公钥对其进行加密,并使用存储在服务器中的私钥以安全的方式对其进行解密。正如我第一次看到的那样,MITM 攻击虽然会发生,因为几乎不可能知道给定 PublicKey 的 PrivateKey。

标签: javascript rsa


【解决方案1】:

为什么要只加密消息正文?只需通过 SSL 发出您的 AJAX 请求 - 您的整个传输将被加密。

这将只需要对您的代码进行最少的更改(将https 放在 url 前面),您不必担心 javascript 中的加密。

【讨论】:

  • 我想过,但不知道如何在服务器上处理。我目前在 Tomcat 上使用 Jersey,但对此没有任何帮助。
  • 无需以任何特殊方式“在服务器上处理”——只需启用 SSL。我是 IIS 人员,因此无法帮助您进行 Tomcat 设置。
【解决方案2】:

一旦我使用了 JQuery 插件来解码 base64 字符串。

$.base64.decode('yourstring');

更多信息在这里。 http://plugins.jquery.com/project/base64

【讨论】:

  • 加密和编码是两个不同的概念。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 2020-01-24
  • 2013-07-15
  • 2023-01-19
  • 2012-06-24
相关资源
最近更新 更多