MD5和SHA1加密,DES加密和解密,Base64编码解码。
2009-11-23 16:00
549 查看
引用命名空间
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string md5Str = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
return md5Str;
string strpwd1=FormsAuthentication.HashPasswordForStoringInConfigFile("pwd", "SHA1");
string strpwd2=FormsAuthentication.HashPasswordForStoringInConfigFile("pwd", "MD5");
UTF-8编码与解码
using System.Web.Security; using System.Security.Cryptography; using System.Text; using System.IO;
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string md5Str = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
return md5Str;
string strpwd1=FormsAuthentication.HashPasswordForStoringInConfigFile("pwd", "SHA1");
string strpwd2=FormsAuthentication.HashPasswordForStoringInConfigFile("pwd", "MD5");
/// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> public static string DESEncrypt(string encryptString) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8)); byte[] rgbIV = rgbKey; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); cStream.Close(); return Convert.ToBase64String(mStream.ToArray()); } catch { return encryptString; } } /// <summary> /// DES解密字符串 /// </summary> /// <param name="decryptString">待解密的字符串</param> /// <returns>解密成功返回解密后的字符串,失败返源串</returns> public static string DESDecrypt(string decryptString) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8)); byte[] rgbIV = rgbKey; byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); cStream.Close(); return Encoding.UTF8.GetString(mStream.ToArray()); } catch { return decryptString; } } /// <summary> /// 将普通字符串编码为BASE64字串 /// </summary> /// <param name="str">源字符串</param> /// <returns></returns> public static string Base64Encode(string str) { return Convert.ToBase64String(Encoding.UTF8.GetBytes(str)); } /// <summary> /// 解码BASE64字串 /// </summary> /// <param name="str">Base64字串</param> /// <returns></returns> public static string Base64Decode(string base64Str) { return Encoding.UTF8.GetString(Convert.FromBase64String(base64Str)); }
UTF-8编码与解码
//对字符串进行UTF-8编码 public static string strUTF(string str) { return HttpUtility.UrlEncode(str); } //对字符串进行UTF-8解码 public static string strDecode(string str) { return HttpUtility.UrlDecode(str); }
/// <summary> /// 加密 /// </summary> /// <param name="str">要加密的</param> /// <param name="key">钥匙</param> /// <returns></returns> public static string Encode(string str, string key) { System.Security.Cryptography.DESCryptoServiceProvider provider = new System.Security.Cryptography.DESCryptoServiceProvider(); provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); byte[] bytes = Encoding.UTF8.GetBytes(str); MemoryStream stream = new MemoryStream(); System.Security.Cryptography.CryptoStream stream2 = new System.Security.Cryptography.CryptoStream(stream, provider.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write); stream2.Write(bytes, 0, bytes.Length); stream2.FlushFinalBlock(); StringBuilder builder = new StringBuilder(); foreach (byte num in stream.ToArray()) { builder.AppendFormat("{0:X2}", num); } stream.Close(); return builder.ToString(); } /// <summary> /// 解密 /// </summary> /// <param name="str">要解密的</param> /// <param name="key">钥匙</param> /// <returns></returns> public static string Decode(string str, string key) { System.Security.Cryptography.DESCryptoServiceProvider provider = new System.Security.Cryptography.DESCryptoServiceProvider(); provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); byte[] buffer = new byte[str.Length / 2]; for (int i = 0; i < (str.Length / 2); i++) { int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10); buffer[i] = (byte)num2; } MemoryStream stream = new MemoryStream(); System.Security.Cryptography.CryptoStream stream2 = new System.Security.Cryptography.CryptoStream(stream, provider.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write); stream2.Write(buffer, 0, buffer.Length); stream2.FlushFinalBlock(); stream.Close(); return Encoding.GetEncoding("UTF-8").GetString(stream.ToArray()); }
相关文章推荐
- MD5、SHA1、DES加密和解密,Base64编码解码
- openssl学习篇之base64编码、解码;md5 摘要;sha1摘要;3des加密,解密;rsa算法
- Base64 算法原理,以及编码、解码【加密、解密】 介绍
- Base64 算法原理,以及编码、解码【加密、解密】 介绍
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- c语言 base64 md5 sha1编码与解码
- SHA1 MD5 BASE64 AES 加密解密
- MD5 base64 sha1 加密,解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- linux之用openssl命令Base64编码解码、md5/sha1摘要、AES/DES3加密解密
- Base64 算法原理,以及编码、解码【加密、解密】 介绍
- SHA1 MD5 BASE64 AES 加密解密
- 用C#实现Base64处理,加密解密,编码解码
- Base64 算法原理,以及编码、解码【加密、解密】 介绍
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 用C#实现Base64处理,加密解密,编码解码
- 完整加密类(提供MD5,SHA1,SHA256,SHA512,DES加密和解密)