/// <summary> /// 获取用DES方法加密 [一个指定的待加密的字符串] 后的字符串 /// </summary> /// <param name="encryptString">一个指定的待加密的字符串</param> /// <param name="encryptKey">加密密钥,要求为8位</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> public static string DesEncrypt(string encryptString, string encryptKey) { encryptKey = UtilString.GetSubString(encryptKey, 0, 8, ""); encryptKey = encryptKey.PadRight(8, ' '); byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIv = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); var dCsp = new DESCryptoServiceProvider(); var mStream = new MemoryStream(); var 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 DesDecrypt(string decryptString, string decryptKey) { try { decryptKey = UtilString.GetSubString(decryptKey, 0, 8, ""); decryptKey = decryptKey.PadRight(8, ' '); byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); byte[] rgbIv = Keys; byte[] inputByteArray = Convert.FromBase64String(decryptString); var dcsp = new DESCryptoServiceProvider(); var mStream = new MemoryStream(); var cStream = new CryptoStream(mStream, dcsp.CreateDecryptor(rgbKey, rgbIv), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return(Encoding.UTF8.GetString(mStream.ToArray())); } catch { return(decryptString); } }