此demo包含两个文件,建立一个解决方案,然后建立两个文件,一个为form,一个为class,把代码分别复制进去即可
加密解密: 【程序编程相关:在 DataGridColumnStyl】rsa正确的执行过程: 【推荐阅读:体验下一代微软平台开发Visual St】2.加密 【扩展信息:小的文本编辑器】1.获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥3.解密签名与验证:签名:1.获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥2.获取待签名的hash码3.签名其中,1与2的步骤无所谓,在本例中,我们将对txtsource里的内容进行签名,也可以对文件进行签名验证签名:1.获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥2.获取待验证签名的hash码3.获取签名的字串,这里签名的字串存储在m_strencryptedsignaturedata变量中,在demo中必须通过签名才能获得这个字串,因此需要先执行签名,当然也可以更改之后通过别的方式获得4.验证其中,1与2的步骤无所谓,在本例中,我们将对txtsource里的内容进行签名验证,也可以对文件进行签名验证 如果是文件,取得文件之后把文件的内容以byte[]的方式代入即可/////////////////////////////////////////////////////////////////////////////////////////////////////////////rsacryption.cs///////////////////////////////////////////////////////////////////////////////////////////////////////////using system;using system.text;using system.security.cryptography;namespace rsaapplication
{ /// <summary> /// rsacryption 的摘要说明. /// </summary> public class rsacryption { #region 构造函数public rsacryption()
{ // // todo: 在此处添加构造函数逻辑 // } #endregion #region rsa 加密解密#region rsa 的密钥产生
//rsa 的密钥产生 //产生私钥 与公钥 public void rsakey(out string xmlkeys,out string xmlpublickey) { try { system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider(); xmlkeys=rsa.toxmlstring(true); xmlpublickey = rsa.toxmlstring(false); } catch(exception ex) { throw ex; } } #endregion #region rsa的加密函数 //############################################################################## //rsa 方式加密 //说明key必须是xml的行式,返回的是字符串 //在有一点需要说明!!该加密方式有 长度 限制的!! //##############################################################################//rsa的加密函数
public string rsaencrypt(string xmlpublickey,string m_strencryptstring ) { try { byte[] plaintextbarray; byte[] cyphertextbarray; string result; system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider(); rsa.fromxmlstring(xmlpublickey); plaintextbarray = (new unicodeencoding()).getbytes(m_strencryptstring); cyphertextbarray = rsa.encrypt(plaintextbarray, false); result=convert.tobase64string(cyphertextbarray); return result; } catch(exception ex) { throw ex; } } //rsa的加密函数 public string rsaencrypt(string xmlpublickey,byte[] encryptstring ) { try { byte[] cyphertextbarray; string result; system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider(); rsa.fromxmlstring(xmlpublickey); cyphertextbarray = rsa.encrypt(encryptstring, false); result=convert.tobase64string(cyphertextbarray); return result; } catch(exception ex) { throw ex; } } #endregion... 下一页