我正在尝试实现Java和JavaScript之间的加密解决方案。
在Java端,我有以下静态代码块:
public class Manager {
public static KeyPairGenerator keyPairGenerator;
public static KeyPair keyPair;
static{
try {
keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024);
keyPair = keyPairGenerator.genKeyPair();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
...
}这基本上是在我的服务器启动并运行后生成一个新的KeyPair ...
然后我以JSON格式给出公钥:
<%
JSONObject json = new JSONObject();
json.put("publicKey", "-----BEGIN PUBLIC KEY-----" + Base64.encodeBase64URLSafeString(Manager.keyPair.getPublic().getEncoded()) + "-----END PUBLIC KEY-----");
%>我想使用这个密钥( 1024或2048位)来编码来自客户端表单的信息……有人知道如何使用RSA1024位base64编码的公钥对信息进行编码吗?
我尝试了jCryption和其他几个库,但都没有用。
发布于 2012-06-29 08:23:52
如果你不将你的公钥作为证书发送,你最好单独发送模数和公共指数(例如,在单独的字段中编码的64进制)。默认编码将产生X509 SubjectPublicKeyInfo ASN.1结构,您需要在JavaScript库中解析该结构。
请注意,您仅保护防止窃听者;中间人攻击仍然可行,因为它们可以用自己的公钥替换您的公钥。RSA 1024现在当然已经过时了。幸运的是,您仍然有TLS/SSL来保护您。
https://stackoverflow.com/questions/11206202
复制相似问题