溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

RSA如何實(shí)現(xiàn)C# 加密

發(fā)布時(shí)間:2021-11-24 09:20:33 來源:億速云 閱讀:274 作者:柒染 欄目:編程語言

RSA如何實(shí)現(xiàn)C# 加密,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

RSA實(shí)現(xiàn)C# 加密首先我們來了解下什么是RSA ,它屬于不對(duì)稱加密,其原理就是使用一個(gè)公鑰一個(gè)私鑰,公鑰可以公開用以加密,私鑰嚴(yán)格保密用于解密,那么這樣大家知道了RSA 適合于數(shù)據(jù)量不大的加密,比如加密對(duì)稱加密的密鑰。

RSA實(shí)現(xiàn)C# 加密

RSACryptoServiceProvider 的名稱空間是:

System.Security.  CryptographyRSACryptoServiceProvider   rsaSend = new RSACryptoServiceProvider();   string plaintext = "明文"; //明文   byte[] ciphertext = rsaSend.Encrypt(  System.Text.Encoding.UTF8.GetBytes(plaintext), false);   //加密后   lbl.Text = Convert.ToBase64String(ciphertext);   //顯示加密后的,為了顯示不可見字符,使用的是 Base64 編碼。

使用 RSACryptoServiceProvider() 創(chuàng)建 RSACryptoServiceProvider 實(shí)例時(shí),自動(dòng)產(chǎn)生密鑰。

RSA 實(shí)際應(yīng)用中是:接收方產(chǎn)生公鑰和私鑰,發(fā)送方用其公鑰加密,再把加密后的內(nèi)容發(fā)送給接收方。

CspParameters 的名稱空間是:

System.Security.CryptographyCspParameters cpSend =   new CspParameters(); //Csp = Cryptography Service Provider  CspParameters cpReceive = new CspParameters();  cpSend.KeyContainerName = "SendTestContainer";  cpReceive.KeyContainerName =   "ReceiveTestContainer";   RSACryptoServiceProvider rsaSend =   new RSACryptoServiceProvider(cpSend); ;  RSACryptoServiceProvider rsaReceive =   new RSACryptoServiceProvider(cpReceive);   rsaSend.FromXmlString(rsaReceive.ToXmlString(false));   //發(fā)送方使用接收方給它的公鑰進(jìn)行加密   string plaintext =   "前幾天我碰到一個(gè)朋友,約我跟馬賊打架,  我立馬答應(yīng)了他,因?yàn)槲矣X得這件事好無聊。";  byte[] ciphertext =   rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(  plaintext), false); //加密后  byte[] decryption =   rsaReceive.Decrypt(ciphertext, false); //解密后   lbl.Width = 760;  lbl.Text = "";  lbl.Text +=   Convert.ToBase64String(ciphertext) + "﹤br /﹥";   //顯示加密后的  lbl.Text +=   System.Text.Encoding.UTF8.GetString(decryption) + "﹤br /﹥";   //顯示解密后的  lbl.Text +=   Server.HtmlEncode(rsaSend.ToXmlString(false)) + "﹤br /﹥";   //顯示發(fā)送方公鑰  lbl.Text +=   Server.HtmlEncode(rsaReceive.ToXmlString(true)) + "﹤br /﹥";   //顯示接收方公鑰和私鑰  lbl.Text +=   Server.HtmlEncode(rsaReceive.ToXmlString(false)) + "﹤br /﹥";    //顯示接收方公鑰   rsaSend.PersistKeyInCsp = true; //密鑰要保存起來  //rsaSend.Clear();  rsaReceive.PersistKeyInCsp = true;  //rsaReceive.Clear();

在上面的代碼中,我們使用 CspParameters 將密鑰保存起來,ToXmlString 和 FromXmlString 將接收方的公鑰告訴給發(fā)送方。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)
推薦閱讀:
  1. RSA算法
  2. RSA加密

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

rsa
AI