Android创建RSA 1024 .NET兼容密钥

时间:2010-09-02 16:14:54

标签: android rsa

我正在开发一个Android应用程序,我需要生成一些RSA私钥和公钥,用于与Web服务进行安全通信。为此,我需要以.NET兼容的形式提供公钥。 喜欢:

<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>

到目前为止,我设法做到了:

  keyGen = KeyPairGenerator.getInstance("RSA");
  keyGen.initialize(1024);
  keypair = keyGen.genKeyPair();
  privateKey = keypair.getPrivate();
  publicKey = keypair.getPublic();

  // Get the bytes of the public and private keys
  byte[] privateKeyBytes = privateKey.getEncoded();
  byte[] publicKeyBytes = publicKey.getEncoded();

我不知道如何继续。你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

对于其他感兴趣的人,可以在这里找到一个非常好的教程

http://www.codeproject.com/KB/security/porting_java_public_key.aspx?msg=3407475

如果您需要Base64编码/解码,因为它不包含在Android中(至少在API 4中),您可以使用此处的类:iharder.sourceforge.net/current/java/base64 /

答案 1 :(得分:0)

您没有显示类型publicKey。如果尚未添加,则应转换为RSAPublicKey,然后使用getPublicExponent()getModulus()方法提取BigInteger。然后简单地使用标准Java IO,e.q。 PrintStream.println()printf()生成XML组件。