1
我必須使用AES和RSA來實現數字信封,但是我在RSA算法的.NET實現方面遇到問題。使用模數和公開指數的C#RSA加密
我設法用隨機對稱密鑰加密數據(AES),但現在我必須用RSA加密密鑰。
關鍵是字節數組(byte[]
)和公鑰我告訴我只有模數和公開指數,兩個字節數組(byte[]
)。
僅使用這兩個參數,我如何使用RSA加密AES生成的密鑰?
以下代碼從文件中檢索消息並使用AES對其進行加密。 之後,公鑰將從公鑰文件中讀取,並且模數和指數位於其適當的字節數組中。我將如何繼續使用RSA加密symmetricKey
?
String msgString = Systematic.GetFileContents(messagePath);
Byte[] initVector = new byte[] { 50, 60, 70, 80, 90, 40, 50, 60, 70, 80, 90, 40, 60, 80, 70, 90 };
Byte[] symetricKey = AesCrypt.GenerateRandomKey();
Byte[] encryptedMessage = AesCrypt.Encrypt(msgString, symetricKey, initVector, mode);
Byte[] modulus = null;
Byte[] publicExp = null;
DataFormatHelper.ReadPublicKey(publicKeyPath, "RSA", ref modulus, ref publicExp);
P.S.在回答提及rsa.ImportParameters
: 答案我已經嘗試過rsa.ImportParameters(keyInfo)
,但它會拋出CryptographicException
("Bad Data"
)。數組大小呢? 目前,模數爲128字節,指數爲64字節。
如果您使用rsa.ExportParameters(false);那麼你會得到一個3字節的指數和一個128字節的模數 – ShuggyCoUk 2009-06-22 14:49:29