我正在尝试在客户端和服务器之间进行加密通信。当服务器启动时,会生成其公共和私有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公钥从服务器传递到客户端的好方法吗?
可以感谢一些帮助,谢谢。
答案 0 :(得分:2)
我找到了解决问题的方法。而不是将PublicKey传递给json我在json中传递模数和公共指数。在我通过使用KeyFactory在客户端获取PublicKey之后。更详细的说明是here