using System; |
using System.Collections.Generic; |
using System.IO; |
using System.Linq; |
using System.Security.Cryptography; |
using System.Text; |
public class DesUtils |
{ |
//默认密钥向量 |
//private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; |
private static byte [] Keys = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
private const string KEY = "abcdefgh" ; |
/// <summary> |
/// DES加密字符串 |
/// </summary> |
/// <param name="encryptString">待加密的字符串</param> |
/// <param name="encryptKey">加密密钥,要求为8位</param> |
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns> |
public static string EncryptDES( string encryptString, string encryptKey = KEY) |
{ |
byte [] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); |
byte [] rgbIV = Keys; |
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(); |
return Convert.ToBase64String(mStream.ToArray()); |
} |
/// <summary> |
/// DES解密字符串 |
/// </summary> |
/// <param name="decryptString">待解密的字符串</param> |
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param> |
/// <returns>解密成功返回解密后的字符串,失败返源串</returns> |
public static string DecryptDES( string decryptString, string decryptKey = KEY) |
{ |
byte [] rgbKey = Encoding.UTF8.GetBytes(decryptKey); |
byte [] rgbIV = Keys; |
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(); |
return Encoding.UTF8.GetString(mStream.ToArray()); |
} |
/// <summary> |
/// 给一个字符串进行MD5加密 |
/// </summary> |
/// <param name="strText">待加密字符串</param> |
/// <returns>加密后的字符串</returns> |
public static string EncryptMD5( string strText) |
{ |
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); |
byte [] bytValue, bytHash; |
bytValue = System.Text.Encoding.UTF8.GetBytes(strText); |
bytHash = md5.ComputeHash(bytValue); |
md5.Clear(); |
string sTemp = "" ; |
for ( int i = 0; i < bytHash.Length; i++) |
{ |
sTemp += bytHash[i].ToString( "X" ).PadLeft(2, '0' ); |
} |
return sTemp.ToUpper(); |
} |
} |
by: 发表于:2017-12-20 17:30:36 顶(0) | 踩(0) 回复
??
回复评论