亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

System.Security.Cryptography.CryptographicEx

系統 1983 0

在使用C#的不對稱加密 RSACryptoServiceProvider 類的時候,會遇到異常:System.Security.Cryptography.CryptographicException: The data to be decrypted exceeds the maximum for this modulus of 128 bytes. 異常詳細信息:?System.Security.Cryptography.CryptographicException:?要解密的數據超過此模塊的最大值?128?字節。 錯誤發生在 rsa.Decrypt 這一行。通常不對稱加密的過程:1. A端數據用公鑰加密,通過網絡傳輸 2. B端用私鑰解密這些數據。但.net中的rsa加密最多只能對117字節數據進行操作(128位減去隨機數),導致128位數據不得不分兩部分進行處理,于是加密數據不斷膨脹。更多詳細討論參考 StackOverflow這 個帖子。

解決辦法

在CodeProject上有一篇 文章 , 可以很好的解決這個問題,先下載BigInteger class。

RSAHelper
???? public ? static ? class ?RSAHelper
????{
???????? /// ? <summary>
????????
/// ?RSAs?the?encrypt.
????????
/// ? </summary>
????????
/// ? <param?name="datatoencrypt"> The?datatoencrypt. </param>
????????
/// ? <param?name="exponent"> The?exponent. </param>
????????
/// ? <param?name="modulus"> The?modulus. </param>
????????
/// ? <returns></returns>
???????? public ? static ? byte []?RsaEncrypt( byte []?datatoencrypt,? byte []?exponent,? byte []?modulus)
????????{
???????????? var ?original?=? new ?BigInteger(datatoencrypt);
???????????? var ?e?=? new ?BigInteger(exponent);
???????????? var ?n?=? new ?BigInteger(modulus);
???????????? var ?encrypted?=?original.modPow(e,?n);
???????????? return ?HexstringTobyte(encrypted.ToHexString());
????????}


???????? /// ? <summary>
????????
/// ?RSAs?the?decrypt.
????????
/// ? </summary>
????????
/// ? <param?name="encrypteddata"> The?encrypteddata. </param>
????????
/// ? <param?name="d"> The?d. </param>
????????
/// ? <param?name="modulus"> The?modulus. </param>
????????
/// ? <returns></returns>
???????? public ? static ? byte []?RsaDecrypt( byte []?encrypteddata,? byte []?d,? byte []?modulus)
????????{
???????????? var ?encrypted?=? new ?BigInteger(encrypteddata);
???????????? var ?dd?=? new ?BigInteger(d);
???????????? var ?n?=? new ?BigInteger(modulus);
???????????? var ?decrypted?=?encrypted.modPow(dd,?n);
???????????? return ?HexstringTobyte(decrypted.ToHexString());
????????}


???????? /// ? <summary>
????????
/// ?Generate?random?bytes?with?given?length
????????
/// ? </summary>
????????
/// ? <param?name="bytelength"></param>
????????
/// ? <returns></returns>
???????? public ? static ? byte []?GenerateRandomBytes( int ?bytelength)
????????{
???????????? var ?buff?=? new ? byte [bytelength];
???????????? var ?rng?=? new ?RNGCryptoServiceProvider();

????????????rng.GetBytes(buff);
???????????? return ?buff;
????????}

????}
Encrypt
// ENCRYPT?WITH?PUBLIC?KEY
var ?rsa?=? new ?RSACryptoServiceProvider();
rsa.ImportParameters(_publicKey? /* Type:?RSAParameters */ );

byte []?encryptedData?=?RSAHelper.RsaEncrypt(Encoding.Unicode.GetBytes(stringDataToEncrypt? /* Type:?string */ ),?data.parameters.Exponent,?data.parameters.Modulus);
return ?Convert.ToBase64String(encryptedData);
Decrypt
? // Decrypt?
var ?rsa?=? new ?RSACryptoServiceProvider();
// Import?private?key
rsa.ImportParameters(_privateKey? /* ?Type:?RSAParameters? */ );
byte []?encryptedData?=?RSAHelper.RsaDecrypt(Convert.FromBase64String(encryptedBase64String /* ?Type:?string,?but?base64?format? */ ),?_privateKey.D,?_privateKey.Modulus);
return ?Encoding.Unicode.GetString(encryptedData);

更多討論

更多詳細討論參考 StackOverflow這 個帖子。?

?

?

?

System.Security.Cryptography.CryptographicException: The data to be decrypted exceeds the maximum for this modulus of 128 bytes. (RSACryptoServiceProv


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: www色婷婷 | 欧美一a一片一级一片 | 亚洲色综合 | 国产一区免费观看 | 毛片免费观看的视频 | 色偷偷成人网免费视频男人的天堂 | 99热国产这里只有精品9九 | 日韩高清不卡在线 | 久久99国产这里有精品视 | 亚洲va欧美va国产综合久久 | 国产成+人+综合+亚洲专 | 四虎永久免费地址在线观看 | 久久riav.com| 天天干天天操天天拍 | 狠狠ai| 日本欧美一二三区色视频 | 久久久国产麻豆 | 福利院肉动漫视频在线观看 | 伊人久久亚洲综合 | 亚洲国产成人久久一区二区三区 | 亚洲精品久久九九精品 | 日韩色视频一区二区三区亚洲 | 精品国产品欧美日产在线 | 香蕉爱爱网| 国产97在线 | 亚洲 | 五月天免费在线视频 | 99热久久国产这里有只有精品 | 性生活视频网址 | 激情欧美一区二区三区中文字幕 | 久久精品全国免费观看国产 | 精品亚洲一区二区在线播放 | 国产片91人成在线观看 | 国产精品美女www爽爽爽视频 | 91色多多 | 精品久久国产视频 | 另类亚洲视频 | www久久只有这里有精品 | 亚洲欧洲国产精品你懂的 | 日韩第3页| 中文字幕视频不卡 | 91精品国产福利尤物免费 |