http://www.fawcette.com/china/XmlFile.aspx?ID=298
http://www.c-sharpcorner.com/Code/2002/Dec/CryptEncryption.asp
asp里面实现的参考一下
http://www.edainfo.net/document/load.asp?lanid=1&doc=4&docid=472
一个组件值得看看
http://www.123aspx.com/redir.aspx?res=29881
http://www.c-sharpcorner.com/Code/2002/Dec/CryptEncryption.asp
asp里面实现的参考一下
http://www.edainfo.net/document/load.asp?lanid=1&doc=4&docid=472
一个组件值得看看
http://www.123aspx.com/redir.aspx?res=29881
不但要有RSA的加密算法还需要一个散列函数一般使用的是MD5。我们用散列函数将我们的明文计算猴得到一个很小的散列值(叫作摘要)我们用RSA加密算法中的私钥对他加密后产生一个新的摘要,将这个摘要发送给目标。
guan zhu
这个不能下载的 哪位有没有不是英文版的说明
RSACryptoServiceProvider rsac = new RSACryptoServiceProvider();
byte[] src = new byte[1024]; FileStream fs = new FileStream("miwen.txt", FileMode.Open, FileAccess.Read);
int len;
MemoryStream ms = new MemoryStream();
while ((len = fs.Read(src, 0, 64)) > 0)
{
ms.Write(src, 0, len);
}
fs.Close();
ms.Position = 0;
MD5 sha = MD5.Create();
byte[] result = rsac.SignData(ms, sha);
FileStream res = new FileStream("Result.txt", FileMode.Create, FileAccess.Write);
res.Write(result, 0, result.Length);
res.Close();
StreamWriter sw = new StreamWriter("RSA.key");
sw.Write(rsac.ToXmlString(false));
sw.Close();
}public static bool VerifyData() {
StreamReader sr = new StreamReader("RSA.key");
String str = sr.ReadToEnd();
sr.Close();
RSACryptoServiceProvider rsac = new RSACryptoServiceProvider();
rsac.FromXmlString(str);
FileStream srcfs = new FileStream("miwen.txt", FileMode.Open, FileAccess.Read);
byte[] src = new byte[1024];
MemoryStream srcms = new MemoryStream();
int len = 0;
while ((len = srcfs.Read(src, 0, 64)) > 0)
{
srcms.Write(src, 0, len);
}
srcfs.Close();
srcms.Position = 0; FileStream fs = new FileStream("Result.txt", FileMode.Open, FileAccess.Read);
MemoryStream ms = new MemoryStream();
while ((len = fs.Read(src, 0, src.Length)) > 0) {
ms.Write(src, 0, len);
}
fs.Close();
return rsac.VerifyData(srcms.ToArray(), MD5.Create(), ms.ToArray());
}
A的私钥 A的公钥
| |
| 密文和明文 |
明文 ----> A:加密(SignData) ---------------> B:解密(VerifyData) ----> 明文
//发送方
1、选择一个对称加密算法,加密数据,将密钥用RSA加密准备和密文一起发送。
2、选择一个散列算法(hash),计算明文的hash值,用RSA加密。(签名过程)//接收方
3、用RSA解密对称密钥,用对称密钥解密密文得到原文。
4、用RSA解密hash值,得到原始摘要。
5、再用相同的散列计算解密后的明文的散列值。
6、比较两个散列值确定签名。
不行再找我。