我在C#項目中使用RSA(Bouncy Castle API)。我生成密鑰對用這種方法:Bouncy Castle,RSA:將密鑰轉換爲字符串格式
RsaKeyPairGenerator r = new RsaKeyPairGenerator();
r.Init(new KeyGenerationParameters(new SecureRandom(), 1024));
AsymmetricCipherKeyPair keys = r.GenerateKeyPair();
AsymmetricKeyParameter private_key = keys.Private;
AsymmetricKeyParameter public_key = keys.Public;
現在我想將它們保存在一個txt文件,但問題是,我不能將它們轉換爲字符串格式。我在另一篇文章中讀到鑰匙必須使用序列號:
PrivateKeyInfo k = PrivateKeyInfoFactory.CreatePrivateKeyInfo(private_key);
byte[] serializedKey = k.ToAsn1Object().GetDerEncoded();
這是正確的方法嗎?如果是的話,我應該怎麼做?只需將它們從字節[]轉換爲字符串?
謝謝您的快速答覆。我做你說的,因此我得到了這個** MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJ7s/B4XNHmNa9LwZ91z ... **我認爲它應該是一個BigInteger否?因爲在RSA中我們使用數字(p,q ...) – Skeenor 2011-02-23 12:41:09
方法名稱(GetDerEncoded)表明返回的數據包含DER編碼格式的所有RSA密鑰參數(p,q,...)。 – 2011-02-23 13:50:49
@Rami:你的目標是讓你可以「補水」回PrivateKeyInfo嗎?如果是這樣,你不需要知道整數等......你只是想確保你可以序列化到一個字節數組(然後到一個字符串),反之亦然。 – 2011-02-23 13:57:08