rsa加密算法使用示例分享
產(chǎn)生私鑰和公鑰
System.Security.Cryptography.RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider();
//得到私鑰主要保存了RSAParameters中的8各參數(shù)
privateKey = myrsa.ToXmlString(true);
//得到公鑰保存了RSAParameters中2個(gè)參數(shù)
publicKey = myrsa.ToXmlString(false);
RAS實(shí)現(xiàn)加密
System.Security.Cryptography.RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider();
//得到公鑰
myrsa.FromXmlString(publicKey);
//把你要加密的內(nèi)容轉(zhuǎn)換成byte[]
byte[] PlainTextBArray = (new UnicodeEncoding()).GetBytes("這里是你要加密的內(nèi)容");
//使用.NET中的Encrypt方法加密
byte[] CypherTextBArray = myrsa.Encrypt(PlainTextBArray, false);
//最后吧加密后的byte[]轉(zhuǎn)換成Base64String,這里就是加密后的內(nèi)容了
Result = Convert.ToBase64String(CypherTextBArray)
RAS實(shí)現(xiàn)解密
System.Security.Cryptography.RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider();
//得到私鑰
myrsa.FromXmlString(xmlPrivateKey);
//把原來(lái)加密后的String轉(zhuǎn)換成byte[]
byte[] PlainTextBArray = Convert.FromBase64String("剛才加密后的string");
//使用.NET中的Decrypt方法解密
byte[] DypherTextBArray = myrsa.Decrypt(PlainTextBArray, false);
//轉(zhuǎn)換解密后的byte[],這就得到了我們?cè)瓉?lái)的加密前的內(nèi)容了
Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
byte[] messagebytes = Encoding.UTF8.GetBytes("luo羅");
RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();
string privatekey = oRSA.ToXmlString(true);
string publickey = oRSA.ToXmlString(false);
//私鑰簽名
RSACryptoServiceProvider oRSA3 = new RSACryptoServiceProvider();
oRSA3.FromXmlString(privatekey);
byte[] AOutput = oRSA3.SignData(messagebytes, "SHA1");
//公鑰驗(yàn)證
RSACryptoServiceProvider oRSA4 = new RSACryptoServiceProvider();
oRSA4.FromXmlString(publickey);
bool bVerify = oRSA4.VerifyData(messagebytes, "SHA1", AOutput);
相關(guān)文章
C#數(shù)據(jù)結(jié)構(gòu)之堆棧(Stack)實(shí)例詳解
這篇文章主要介紹了C#數(shù)據(jù)結(jié)構(gòu)之堆棧(Stack),結(jié)合實(shí)例形式較為詳細(xì)的分析了堆棧的原理與C#實(shí)現(xiàn)堆棧功能的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11C# linq查詢之動(dòng)態(tài)OrderBy用法實(shí)例
這篇文章主要介紹了C# linq查詢之動(dòng)態(tài)OrderBy用法,實(shí)例分析了C#采用linq方式查詢時(shí)動(dòng)態(tài)排序的相關(guān)技巧,需要的朋友可以參考下2015-06-06基于C# 寫(xiě)一個(gè) Redis 數(shù)據(jù)同步小工具
Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這篇文章主要介紹了用 C# 寫(xiě)一個(gè) Redis 數(shù)據(jù)同步小工具,需要的朋友可以參考下2020-02-02重寫(xiě)、隱藏基類(lèi)(new, override)的方法
重寫(xiě)、隱藏基類(lèi)(new, override)的方法,需要的朋友可以參考一下2013-03-03Unity實(shí)現(xiàn)局域網(wǎng)聊天室功能
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)局域網(wǎng)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10