求非对称加密的编程

来源:百度知道 编辑:UC知道 时间:2024/05/20 19:10:38
如能提供1人加密,多人解密的非对称加密程序就更好了

给你个例子,差不多照都做就行了:
RSA:
//待加密的明文
string originText;
//公钥
string publicKey;

byte[] cryp_byte;
RSACryptoServiceProvider rsaReceive = new RSACryptoServiceProvider();
RSACryptoServiceProvider rsaSend = new RSACryptoServiceProvider();

加密:
originText ="???";
//接收方先生成公钥, 并将此公钥公开
//参数false 表示只生成公钥, 如果为true, 则同时生成公钥和私钥.
publicKey = rsaReceive.ToXmlString(false);
//发送方接收公钥, 并用此公钥加密数据
rsaSend.FromXmlString(publicKey);
//发送方执行加密.
//第二个参数指示是否使用OAEP, 如果使用, 则程序必须运行在Windows XP 及以上版本的
//系统中. 无论true 或false, 解密时必须跟加密时的选择相同.
cryp_byte= rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(originText), false);
data_encyp.Text = Encoding.Default.GetString(cryp_byte);
//接收方用自己的私钥解密<