2011-07-06 104 views
1

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

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

我该如何解码这个代表公钥的编码字符串,它只使用JavaScript,并且实际上使用它来加密一些文本?

在此先感谢!

+0

为什么要在客户端进行加密?在JavaScript中?为什么不使用SSL? –

+1

如果您的加密是客户端,那么如果我能够使用客户端源代码来对它进行解码,那么对它进行加密又有什么意义呢?你最好用SSL。 – Robert

+0

我使用公钥加密它,并以安全的方式使用存储在服务器中的私钥对其进行解密。正如我第一次看到的那样,MITM攻击即将发生,因为几乎不可能知道授予PublicKey的PrivateKey。 –

回答

3

为什么要加密邮件正文?只需通过就可以完成您的AJAX请求SSL - 您的整个传输将被加密。

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

+0

我想过,但我不知道如何在服务器上处理它。我目前在Tomcat上使用Jersey,并且在这方面我没有找到任何有用的信息。 –

+0

没有必要以任何特殊的方式'在服务器上处理它' - 只需启用SSL即可。我是一名IIS人,所以无法帮助您使用Tomcat设置。 –