Java:使用GSON序列化RSA公钥

时间:2011-12-13 12:08:46

标签: java encryption rsa instance gson

我正在尝试在客户端和服务器之间进行加密通信。当服务器启动时,会生成其公共和私有RSA密钥。客户端要求服务器提供其公钥,服务器为客户端发送密钥。服务器以JSON格式发送公钥:

Gson gson = new Gson();
String key = gson.toJson(pubKey);

在客户端,我正在尝试获取密钥:

Gson gson = new Gson();
PublicKey pubServerKey = gson.fromJson(responce_json, PublicKey.class);

但我正如here

所描述的那样出现异常

所以我正在尝试为pubServerKey定义InstanceCreator,如下面的代码

class PublicKeyInstanceCreator implements InstanceCreator<PublicKey> {
    public PublicKey createInstance(Type type) {
        return new PublicKey(Object.class, 0L);
    }
 }

但这次我遇到语法错误:无法实例化PublicKey类型

你能建议我如何解决这个问题吗? 在这种情况下,Json是将RSA公钥从服务器传递到客户端的好方法吗?

可以感谢一些帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

我找到了解决问题的方法。而不是将PublicKey传递给json我在json中传递模数和公共指数。在我通过使用KeyFactory在客户端获取PublicKey之后。更详细的说明是here