我正在嘗試RSA/ECB/OAEPWithSHA1AndMGF1Padding在 .NET Framework 2.0 上使用 BouncyCastle 來處理 c#。我得出這樣的結論:IAsymmetricBlockCipher engine = new OaepEncoding(new RsaEngine(), new Sha1Digest(), new Sha1Digest(), null);using (var stream = new StreamReader(publicKey)){ var pemReader = new PemReader(stream); var pemObj = pemReader.ReadObject(); var keyPair = (RsaKeyParameters)pemObj; engine.Init(true, keyPair);}var message = "test";var data = Encoding.UTF8.GetBytes(message);var encrypted = engine.ProcessBlock(data, 0, data.Length);我的問題是,這是否相當于RSA/ECB/OAEPWithSHA1AndMGF1Padding使用 BouncyCastle 和 c# 或者什么是正確的方法?我對這里的參數也有疑問:IAsymmetricBlockCipher engine = new OaepEncoding(new RsaEngine(), new Sha1Digest(), new Sha1Digest(), null);我找不到將第二個定義Sha1Digest為 MGF1 之類的方法。
1 回答

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
c = CipherUtilities.GetCipher("RSA/NONE/OAEPWithSHA1AndMGF1Padding");
c.Init(false, privKey);
outBytes = c.DoFinal(outBytes);
if (!AreEqual(outBytes, input))
{
? ? Fail("OAEP test failed on decrypt expected " + Hex.ToHexString(input) + " got " + Hex.ToHexString(outBytes));
}
注意 c 是一個 IBufferedCipher
- 1 回答
- 0 關注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消