5
我有生成密钥对使用BC如下Java代码:生成密钥对使用充气城堡
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair key = keyGen.generateKeyPair();
PrivateKey priv = key.getPrivate();
PublicKey pub = key.getPublic();
String privateKey = new String(Base64.encode(priv.getEncoded(), 0,priv.getEncoded().length, Base64.NO_WRAP));
String publicKey1 = new String(Base64.encode(pub.getEncoded(), 0,pub.getEncoded().length, Base64.NO_WRAP));
String publicKey = new String(Base64.encode(publicKey1.getBytes(),0, publicKey1.getBytes().length, Base64.NO_WRAP));
现在我想用BC在C#中做的一样。我通过nuget包管理器下载了WP8BouncyCastle库。我已经写为:
var kpgen = new RsaKeyPairGenerator();
kpgen.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024));
var keyPair = kpgen.GenerateKeyPair();
AsymmetricKeyParameter privateKey = keyPair.Private;
AsymmetricKeyParameter publicKey = keyPair.Public;
string prvKey = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(privateKey.ToString()));
string pubKey = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(publicKey.ToString()));
string pubKey1 = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(pubKey.ToString()));
但我需要在Java中可用getEncoded()
方法,它是不是在C#BC库可用。这个getEncoded()
方法用于将给定的密钥转换为X.509编码密钥。在Java的情况下,公开密钥获得两次转换(getencoded()
和getBytes()
),我无法在C#中执行相同的操作。
有没有解决方法?
我是从其他blog.Anyways感谢名单。 – Vaibhav
你至少可以发布博客链接:/ –
命名空间: Org.BouncyCastle.Asn1.Pkcs.PrivateKeyInfo,Org.BouncyCastle.Pkcs.PrivateKeyInfoFactory,Org.BouncyCastle.Asn1.X509.SubjectPublicKeyInfo,Org.BouncyCastle.X509.SubjectPublicKeyInfoFactory –