我正在尝试使用 RSA 使 2 个应用程序相互交谈。第一个是c++,第二个是java。第一个需要向 java 应用程序发送一个公钥。我正在使用一个
CryptExportKey(m_hCryptKey, NULL, PUBLICKEYBLOB, 0, pbKeyBlob, &dwBlobLen);
为此发挥作用。在 java 应用程序中,我尝试使用此函数导入它:
public PublicKey getPublicKeyFromBytes(byte[] keyBytes) throws NoSuchAlgorithmException, InvalidKeySpecException {
KeyFactory keyFactory;
keyFactory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(keyBytes);
return keyFactory.generatePublic(pubKeySpec);
}
它抛出 InvalidKeySpecException。你能告诉我我应该如何导入/导出密钥吗?