RSA实现C# 加密详解
2011-01-22 18:12
531 查看
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
的应用有所帮助。
实现
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
的应用有所帮助。
相关文章推荐
- C#实现RSA加密和解密详解
- RSA实现C# 加密详解
- C#实现RSA加密解密
- 非对称加密过程详解(基于RSA非对称加密算法实现)
- 用C#实现RSA加密的一个小例子
- c#与JavaScript实现对用户名、密码进行RSA非对称加密
- 转载:C#中RSA加密解密和签名与验证的实现
- C#实现RSA加密解密
- c#实现RSA加密解密 - - 博客频道 - zyloveyrf jinghuazhi.com
- C# 与JAVA 的RSA 加密解密交互,互通,C#使用BouncyCastle来实现私钥加密,公钥解密的方法
- 【编程开发】非对称加密过程详解(基于RSA非对称加密算法实现)
- C#实现RSA加密解密源码
- C#中RSA加密解密和签名与验证的实现
- 非对称加密RSA的应用及在C#中的实现
- c# rsa注册实现加密文字
- 非对称加密过程详解(基于RSA非对称加密算法实现)
- C#中RSA加密解密和签名与验证的实现
- 新浪微博、qq rsa密码加密c#实现
- jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
- c#实现RSA加密解密