您好,登錄后才能下訂單哦!
RSA如何實現C# 加密,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
RSA實現C# 加密首先我們來了解下什么是RSA ,它屬于不對稱加密,其原理就是使用一個公鑰一個私鑰,公鑰可以公開用以加密,私鑰嚴格保密用于解密,那么這樣大家知道了RSA 適合于數據量不大的加密,比如加密對稱加密的密鑰。
RSA實現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() 創建 RSACryptoServiceProvider 實例時,自動產生密鑰。
RSA 實際應用中是:接收方產生公鑰和私鑰,發送方用其公鑰加密,再把加密后的內容發送給接收方。
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)); //發送方使用接收方給它的公鑰進行加密 string plaintext = "前幾天我碰到一個朋友,約我跟馬賊打架, 我立馬答應了他,因為我覺得這件事好無聊。"; 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 /﹥"; //顯示發送方公鑰 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 將接收方的公鑰告訴給發送方。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。