rsa
實現c#
加密首先我們來了解下什麼是
rsa
,它屬於不對稱加密,其原理就是使用乙個公鑰乙個私鑰,公鑰可以公開用以加密,私鑰嚴格保密用於解密,那麼這樣大家知道了
rsa
適合於資料量不大的加密,比如加密對稱加密的金鑰。
rsa實現c#加密的過程例項:
rsacryptoserviceprovider的命名空間是:
1. system.security. 2.
cryptographyrsacryptoserviceprovider 3.
rsasend =newrsacryptoserviceprovider(); 4.
5.stringplaintext = "明文
"; //明文 6.
7.byteciphertext = rsasend.encrypt( 8.
system.text.encoding.utf8.getbytes(plaintext),false); 9.
//加密後
10.
11.lbl.text = convert.tobase64string(ciphertext);
12.//顯示加密後的,為了顯示不可見字元,使用的是
base64
編碼。
使用rsacryptoserviceprovider()
建立rsacryptoserviceprovider
例項時,自動產生金鑰。
rsa
實際應用中是:接收方產生公鑰和私鑰,傳送方用其公鑰加密,再把加密後的內容傳送給接收方。
cspparameters的命名空間是:
13. system.security.cryptographycspparameters cpsend =
14.newcspparameters();
//csp = cryptography service provider
15.cspparameters cpreceive =newcspparameters();
16.cpsend.keycontainername =
"sendtestcontainer"
;
17. cpreceive.keycontainername =
18."receivetestcontainer"
;
19.
20.rsacryptoserviceprovider rsasend =
21.newrsacryptoserviceprovider(cpsend); ;
22.rsacryptoserviceprovider rsareceive =
23.newrsacryptoserviceprovider(cpreceive);
24.
25. rsasend.fromxmlstring(rsareceive.toxmlstring(false));
26.//傳送方使用接收方給它的公鑰進行加密
27.
28.stringplaintext =
29."前幾天我碰到乙個朋友,約我跟馬賊打架,
30.我立馬答應了他,因為我覺得這件事好無聊。
";
31.byteciphertext =
32.rsasend.encrypt(system.text.encoding.utf8.getbytes(
33.plaintext),false);
//加密後
34.bytedecryption =
35.rsareceive.decrypt(ciphertext,false);
//解密後
36.
37. lbl.width = 760;
38.lbl.text =
"";
39.lbl.text +=
40.convert.tobase64string(ciphertext) + "﹤
br /﹥"
;
41.//顯示加密後的
42.lbl.text +=
43.system.text.encoding.utf8.getstring(decryption) + "﹤
br /﹥"
;
44.//顯示解密後的
45.lbl.text +=
46.server.htmlencode(rsasend.toxmlstring(false)) + "﹤
br /﹥"
;
47.
//顯示傳送方公鑰
48.lbl.text +=
49.server.htmlencode(rsareceive.toxmlstring(true)) + "﹤
br /﹥"
;
50.//顯示接收方公鑰和私鑰
51.lbl.text +=
52.server.htmlencode(rsareceive.toxmlstring(false)) + "﹤
br /﹥"
;
53. //
顯示接收方公鑰
54.
55. rsasend.persistkeyincsp =true;
//金鑰要儲存起來
56.
57.rsareceive.persistkeyincsp =true;
58.
在上面的**中,我們使用
cspparameters
將金鑰儲存起來,
toxmlstring
和fromxmlstring
將接收方的公鑰告訴給傳送方。
rsa實現c#
加密的實際操作就向你介紹到這裡,希望對你了解和學習
c# 加密以及
rsa的應用有所幫助。
加密 RSA加密之實現
private void btn rsa click object sender,eventargs e rsa加密 public static string rsaencrypt string publickey,string content rsa解密 public static string ...
C 非對稱加密RSA實現
今天應專案要求,做一非對稱加密,看了microsoft的 並不能匯出private 和 public key 當然,網上 這樣的例子很多,可沒找到關於如何匯入匯出key及byte與string 的相互轉化 呼叫了很多直接轉化的函式,轉化的過程中會有亂碼,導致加解密失敗。專案要求,生成乙個privat...
前端實現rsa加密
rsa加密演算法是一種非對稱加密演算法。對極大整數做因數分解的難度決定了rsa演算法的可靠性。換言之,對一極大整數做因數分解愈困難,rsa演算法愈可靠。假如有人找到一種快速因數分解的演算法的話,那麼用rsa加密的資訊的可靠性就肯定會極度下降。但找到這樣的演算法的可能性是非常小的。今天只有短的rsa鑰...