【发布时间】:2016-06-26 10:11:11
【问题描述】:
我在 Android 中生成了一个公钥私钥对。现在我需要将我的公钥发送回服务器以与 RSA 加密进行通信。但是,我正在与 .NET 服务器(在 C# 中)进行通信。因此我需要按以下格式发送我的公钥:
<RSAKeyValue><Modulus>Modulus In Base 64</Modulus><Exponent>Exponent in Base 64</Exponent></RSAKeyValue>
我使用以下代码生成密钥对:
public static void generateKey() {
try
{
final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
final KeyPair key = keyGen.generateKeyPair();
privateKey = key.getPrivate();
publicKey = key.getPublic();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
如何提取刚刚生成的 PublicKey 的模数和指数?
【问题讨论】:
-
将公钥转换为
RSAPublicKey,然后从那里检索和编码参数。 -
谢谢我这样做了,但是有什么方法可以让我获得上述格式(在 RSAKeyValue 标签之间),而无需通过检索和编码参数手动完成?
-
Android 版本的 java 运行时不包含对 XML 数字签名标准的太多支持,因此您找不到太多帮助。
-
感谢您的帮助,C Sharp 和 Android 之间的 RSA 并不容易
标签: android rsa public-key