zoukankan
html css js c++ java
RSA的加解密过程(转自CSDN,学习用)
RSA的加解密过程
public
void
StartDemo()
{
//
RSA的加解密过程:
//
有 rsa1 和 rsa2 两个RSA对象。
//
现在要 rsa2 发送一段信息给 rsa1, 则先由 rsa1 发送“公钥”给 rsa2
//
rsa2 获取得公钥之后,用来加密要发送的数据内容。
//
rsa1 获取加密后的内容后,用自己的私钥解密,得出原始的数据内容。
RSACryptoServiceProvider rsa1
=
new
RSACryptoServiceProvider();
RSACryptoServiceProvider rsa2
=
new
RSACryptoServiceProvider();
string
publickey;
publickey
=
rsa1.ToXmlString(
false
);
//
导出 rsa1 的公钥
string
plaintext;
plaintext
=
"
你好吗?这是用于测试的字符串。
"
;
//
原始数据
Console.WriteLine(
"
原始数据是:\n{0}\n
"
,plaintext);
rsa2.FromXmlString(publickey);
//
rsa2 导入 rsa1 的公钥,用于加密信息
//
rsa2开始加密
byte
[] cipherbytes;
cipherbytes
=
rsa2.Encrypt(
Encoding.UTF8.GetBytes(plaintext),
false
);
/**/
/*
//////////////////////////////////////////////
*/
Console.WriteLine(
"
加密后的数据是:
"
);
for
(
int
i
=
0
; i
<
cipherbytes.Length; i
++
)
{
Console.Write(
"
{0:X2}
"
,cipherbytes[i]);
}
Console.WriteLine(
"
\n
"
);
/**/
/*
//////////////////////////////////////////////
*/
//
rsa1开始解密
byte
[] plaintbytes;
plaintbytes
=
rsa1.Decrypt(cipherbytes,
false
);
Console.WriteLine(
"
解密后的数据是:
"
);
Console.WriteLine(Encoding.UTF8.GetString(plaintbytes));
Console.ReadLine();
}
}
查看全文
相关阅读:
!!!!Linux系统开发 系列 4 进程资源 环境 fork()子进程 wait() waitpid()僵尸 孤儿进程
linux运维工程师
C# CSGL
C# 中的"yield"使用
C#语法糖
VS2017下Git的使用
Oracle数据类型与.NET中的对应关系
Java 8 Stream
Java 8 默认方法
Java 8 函数式接口
原文地址:https://www.cnblogs.com/hanguoji/p/581173.html
最新文章
CSS
mOOC 编绎原理
IDA Plugin 转换为C
关闭137,138,139危险端口最简单的办法是
关闭 135 139 445 转
135 137 138 139 3389 关闭
sql server mvp 宋沄剑 英文名:CareySon
sql server mvp 听风吹雨
sql server mvp 發糞塗牆
Microsoft SQL Server Version List [sqlserver 7.0-------sql server 2016]
热门文章
自动化安装SQLSERVER和SQLSERVER补丁 转
RTM CU CTP
Sql2008R2的一个补丁BUG-大家使用时请注意
Oracle、SQLServer、ArcSDE怎么查看版本、补丁
SQL Server 2008 R2 SP3 and SQL Server 2008 SP4 are now available!
sqlserver 下载地址(SQL Server 2008 R2 中英文 开发版/企业版/标准版 下载)
SQL Server 2008 R2 Build List
SQL SERVER 补丁查看
SQL Server如何启用xp_cmdshell组件
主板维修工具
Copyright © 2011-2022 走看看