gpt4 book ai didi

Java 和 C++ (VS) RSA 加密

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:10 24 4
gpt4 key购买 nike

我正在尝试使用 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。您能告诉我应该如何导入/导出 key 吗?

最佳答案

您必须为 Microsoft RSA 公钥结构编写解码器。还好that structure is well defined .请注意,它使用小端编码,因此您可以先将结构包装在 ByteBuffer setting the order 中到小端。

然后您应该使用 BigInteger.valueOf(1, bigEndianByteArray) 将公共(public)指数和模数部分转换为 BigInteger。诀窍是在从 ByteBuffer 中读取字节后,以正确的顺序获取 bigEndianByteArray 中的字节。

关于Java 和 C++ (VS) RSA 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com