C#MD5加密解密【转载】
2009-04-24 12:29
387 查看
using System.Security.Cryptography; using System.IO; using System.Text; ///MD5加密 public string MD5Encrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); 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(); } ///MD5解密 public string MD5Decrypt(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(); StringBuilder ret = new StringBuilder(); return System.Text.Encoding.Default.GetString(ms.ToArray()); } ------------------------------------------------------------------------------- using System; using System.Text; using System.Globalization; using System.Security.Cryptography; class DES { // 创建Key public string GenerateKey() { DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create(); return ASCIIEncoding.ASCII.GetString(desCrypto.Key); } // 加密字符串 public string EncryptString(string sInputString, string sKey) { byte [] data = Encoding.UTF8.GetBytes(sInputString); DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); ICryptoTransform desencrypt = DES.CreateEncryptor(); byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length); return BitConverter.ToString(result); } // 解密字符串 public string DecryptString(string sInputString, string sKey) { string [] sInput = sInputString.Split("-".ToCharArray()); byte [] data = new byte[sInput.Length]; for(int i = 0; i < sInput.Length; i++) { data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber); } DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); ICryptoTransform desencrypt = DES.CreateDecryptor(); byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length); return Encoding.UTF8.GetString(result); } } class Test { static void Main() { DES des = new DES(); string key = des.GenerateKey(); string s0 = "中国软件 - csdn.net"; string s1 = des.EncryptString(s0, key); string s2 = des.DecryptString(s1, key); Console.WriteLine("原串: [{0}]", s0); Console.WriteLine("加密: [{0}]", s1); Console.WriteLine("解密: [{0}]", s2); } } |
相关文章推荐
- C#对用户密码使用MD5加密与解密
- C#配置文件加解密及多项目共享同一配置文件(转载)
- ASP.NET C# MD5加密 解密
- 基于C#对用户密码使用MD5加密与解密
- C#实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- C# wpf 实现 MD5加密解密 小工具
- C#使用MD5加密,DES加密解密的一个类
- C# MD5加密与解密
- C# MD5加密解密帮助类
- c# MD5加密解密代码
- [转载]MD5加密解密
- md5加密解密 c#实现
- C#MD5加密解密
- [DEncrypt] C# DEncrypt加密/解密帮助类(转载)
- 转载:C#中RSA加密解密和签名与验证的实现
- 转载:Java、C#双语版配套AES加解密示例
- C#中实现MD5加密和解密
- Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。
- C#的MD5加密解密的通用操作类
- c#.net ,md5加密解密代码