C# 哈希加密
2010-04-28 13:06
134 查看
1.方法一:
具体在程序中使用加密解密算法的例子如下:
在发送页面
Response.Redirect("~/GridView.aspx?ID=" + Encrypt("zlh","abcdefgh"));
在接受页面
string acceptStr;
acceptStr = Decrypt(Request.QueryString["ID"],"abcdefgh");
转贴来源:http://hi.baidu.com/4092887/blog/item/4dfd89efaf805ee5cf1b3e5a.html
2.方法二:(简单)
FormsAuthentication.HashPasswordForStoringInConfigFile(string, "SHA1");
或
FormsAuthentication.HashPasswordForStoringInConfigFile(String, "MD5");
//适用于C#语言 //使用前需导入以下命名空间:using System.Web.Security; //第一个参数为需加密的字符串,第二个参数为加密的格式(只有SHA1和MD5两种,可任选一种) public string EncryptPassword(string PasswordString, string PasswordFormat) { string EncryptPassword = null; if ("SHA1".Equals(PasswordFormat)) { EncryptPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(PasswordString, "SHA1"); } else if ("MD5".Equals(PasswordFormat)) { EncryptPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(PasswordString, "MD5"); } else { EncryptPassword = PasswordString; } return EncryptPassword; } //======================加密解密方法===================== using System; using System.Security.Cryptography; using System.IO; using System.Text;/**//// <summary> /// DEC 加密过程 /// </summary> /// <param name="pToEncrypt">被加密的字符串</param> /// <param name="sKey">密钥(只支持8个字节的密钥)</param> /// <returns>加密后的字符串</returns> public string Encrypt(string pToEncrypt, string sKey) ...{ //访问数据加密标准(DES)算法的加密服务提供程序 (CSP) 版本的包装对象 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量 des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法 byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);//把字符串放到byte数组中 MemoryStream ms = new MemoryStream();//创建其支持存储区为内存的流 //定义将数据流链接到加密转换的流 CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); //上面已经完成了把加密后的结果放到内存中去 StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) ...{ ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } /**//**//**//// <summary> /// DEC 解密过程 /// </summary> /// <param name="pToDecrypt">被解密的字符串</param> /// <param name="sKey">密钥(只支持8个字节的密钥,同前面的加密密钥相同)</param> /// <returns>返回被解密的字符串</returns> public string Decrypt(string pToDecrypt, string sKey) ...{ DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; for (int x = 0; x < pToDecrypt.Length / 2; x++) ...{ int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量,此值重要,不能修改 des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); //建立StringBuild对象,createDecrypt使用的是流对象,必须把解密后的文本变成流对象 StringBuilder ret = new StringBuilder(); return System.Text.Encoding.Default.GetString(ms.ToArray()); }
具体在程序中使用加密解密算法的例子如下:
在发送页面
Response.Redirect("~/GridView.aspx?ID=" + Encrypt("zlh","abcdefgh"));
在接受页面
string acceptStr;
acceptStr = Decrypt(Request.QueryString["ID"],"abcdefgh");
转贴来源:http://hi.baidu.com/4092887/blog/item/4dfd89efaf805ee5cf1b3e5a.html
2.方法二:(简单)
FormsAuthentication.HashPasswordForStoringInConfigFile(string, "SHA1");
或
FormsAuthentication.HashPasswordForStoringInConfigFile(String, "MD5");
相关文章推荐
- C# 哈希加密
- c# 加密/解密 哈希
- C#获取哈希加密生成随机安全码的类实例
- C# 哈希加密
- C#中一些常用的加密和哈希处理
- [winphone][C#] RSA加密与解密
- .NET MD5 加密代码 (C#)
- C# 常用加密方法收集 对称,非对称
- java,C#之间的ASE加密实现
- 使用C#实现SSLSocket加密通讯 Https
- C# 文件加密解密 SHA256
- AES加密 对应的 C# 方法
- 【转】C# WINFORM 应用程序动态读写xml config文件,获取数据库连接并对App.config文件进行加密
- SQLite加密的方法(c#)
- C#加密与解密
- [C#] 常用工具类——加密解密类
- c# DESEncrypt 加密、解密算法
- C# 加密总结 一些常见的加密方法
- C#加密解密源码
- [置顶] Access数据库使用数据库加密,C#连接access数据库问题处理