我正在用 Java 为现有程序编写测试工具。作为其中的一部分,我需要生成一个 Diffie Hellman 密钥对并将公钥以其原始(即未编码的字节)形式传递给其他程序。
我可以使用以下代码成功地密钥对:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DiffieHellman");
kpg.initialize(512);
KeyPair dkp = kpg.generateKeyPair();
但是,我似乎无法检索键的原始字节值:-(调用dkp.getPublic().getEncoded()
返回一个字节数组,但它的键是 x509 编码格式。
我想到了三种可能的前进方式:
- 找到一些以原始形式从上面获取关键数据的方法。
- 将密钥的 x509 编码解码为其原始形式
- 以允许访问原始密钥的不同方式生成密钥
但我不知道如何去做其中的任何一个(结果会是最好的)?
任何帮助或建议将不胜感激!