RSA实现C# 加密详解
来源:互联网 发布:软件质量保证计划内容 编辑:程序博客网 时间:2024/05/22 10:30
RSA实现C# 加密首先我们来了解下什么是RSA ,它属于不对称加密,其原理就是使用一个公钥一个私钥,公钥可以公开用以加密,私钥严格保密用于解密,那么这样大家知道了RSA 适合于数据量不大的加密,比如加密对称加密的密钥。
RSA实现C# 加密的过程实例:
RSACryptoServiceProvider 的名称空间是:
1. System.Security.
2. CryptographyRSACryptoServiceProvider
3. rsaSend = new RSACryptoServiceProvider();
4.
5. string plaintext = "明文"; //明文
6.
7. byte[] ciphertext = 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. new CspParameters(); //Csp = Cryptography Service Provider
15. CspParameters cpReceive = new CspParameters();
16. cpSend.KeyContainerName = "SendTestContainer";
17. cpReceive.KeyContainerName =
18. "ReceiveTestContainer";
19.
20. RSACryptoServiceProvider rsaSend =
21. new RSACryptoServiceProvider(cpSend); ;
22. RSACryptoServiceProvider rsaReceive =
23. new RSACryptoServiceProvider(cpReceive);
24.
25. rsaSend.FromXmlString(rsaReceive.ToXmlString(false));
26. //发送方使用接收方给它的公钥进行加密
27.
28. string plaintext =
29. "前几天我碰到一个朋友,约我跟马贼打架,
30. 我立马答应了他,因为我觉得这件事好无聊。";
31. byte[] ciphertext =
32. rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(
33. plaintext), false); //加密后
34. byte[] decryption =
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. //rsaSend.Clear();
57. rsaReceive.PersistKeyInCsp = true;
58. //rsaReceive.Clear();
在上面的代码中,我们使用 CspParameters 将密钥保存起来,ToXmlString 和 FromXmlString 将接收方的公钥告诉给发送方。
RSA实现C# 加密的实际操作就向你介绍到这里,希望对你了解和学习C# 加密以及RSA的应用有所帮助。
- RSA实现C# 加密详解
- c#实现RSA加密解密
- C#实现RSA加密解密
- C# 非对称加密RSA实现
- C#实现非对称加密RSA算法
- C#实现RSA加密解密源码
- RSA加密解密的实现详解_JAVA
- C# 加密-RSA
- C# RSA加密解密
- RSA加密解密详解
- 用C#实现RSA加密的一个小例子
- 用C#实现RSA加密的一个小例子
- c#实现RSA加密解密 - - 博客频道 - zyloveyrf jinghuazhi.com
- C#实现RSA加密与解密、签名与认证
- C#实现字符串RSA加密与解密算法
- C#实现RSA加密与解密、签名与认证
- Java 实现Rsa 加密
- RSA加密,java实现
- MATLAB特殊图形和高维可视化
- json的学习
- spring与struts1的连接(继承JdbcDaoSupport类的操作)
- 斐波那契的递归算法
- 本人简历
- RSA实现C# 加密详解
- Stardict 真人发音配置
- c++ thread
- 第八章 标准io库
- 获得filter的CLSID的几种方法
- 无时无处不重构 —— 评《重构:改善既有代码的设计》
- 技嘉770T-UD3P 的Realtek HD声卡
- 年轻工程师如何锻炼成高手的
- 常见总线