日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Des与3Des加密解密

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Des与3Des加密解密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/// <summary>/// Des和3Des算法/// </summary>public class Des{/// <summary>/// Des加密/// </summary>/// <param name="pToEncrypt">明文</param>/// <param name="sKey">密鑰</param>/// <returns></returns>public static string DESEnCode(string pToEncrypt, string sKey){pToEncrypt = HttpContext.Current.Server.UrlEncode(pToEncrypt);DESCryptoServiceProvider des = new DESCryptoServiceProvider();byte[] inputByteArray = Encoding.GetEncoding("UTF-8").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();}/// <summary>/// 3Des加密(密鑰不能每8位重復,例如:123456781234567812345678,如果這樣則算法退化為Des,C#會檢測,不能使用)/// </summary>/// <param name="a_strString">明文</param>/// <param name="a_strKey">密鑰</param>/// <returns></returns>public string Decrypt3DES(string a_strString, string a_strKey){TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();DES.Key = ASCIIEncoding.ASCII.GetBytes(a_strKey);DES.Mode = CipherMode.ECB;DES.Padding = System.Security.Cryptography.PaddingMode.PKCS7;ICryptoTransform DESDecrypt = DES.CreateEncryptor();string result = "";try{byte[] Buffer = Convert.FromBase64String(a_strString);result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));}catch (Exception e){}return result;}/// <summary>/// Des解密/// </summary>/// <param name="encryptedString">密文</param>/// <param name="key">密鑰</param>/// <returns></returns>public string Decrypt(string encryptedString, string key){byte[] btKey = Encoding.UTF8.GetBytes(key);DESCryptoServiceProvider des = new DESCryptoServiceProvider();des.Key = ASCIIEncoding.ASCII.GetBytes(key);des.Mode = CipherMode.ECB;des.Padding = System.Security.Cryptography.PaddingMode.PKCS7;using (MemoryStream ms = new MemoryStream()){byte[] inData = Convert.FromBase64String(encryptedString);try{using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write)){cs.Write(inData, 0, inData.Length);cs.FlushFinalBlock();}return Encoding.UTF8.GetString(ms.ToArray());}catch{return encryptedString;}}}/// <summary>/// 3Des解密(密鑰不能每8位重復,例如:123456781234567812345678,如果這樣則算法退化為Des,C#會檢測,不能使用)/// </summary>/// <param name="a_strString">密文</param>/// <param name="a_strKey">密鑰</param>/// <returns></returns>public string Decrypt3DES(string a_strString, string a_strKey){TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();DES.Key = ASCIIEncoding.ASCII.GetBytes(a_strKey);DES.Mode = CipherMode.ECB;DES.Padding = System.Security.Cryptography.PaddingMode.PKCS7;ICryptoTransform DESDecrypt = DES.CreateDecryptor();string result = "";try{byte[] Buffer = Convert.FromBase64String(a_strString);result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));}catch (Exception e){}return result;}}

?

轉載于:https://www.cnblogs.com/CielWater/p/4253099.html

總結

以上是生活随笔為你收集整理的Des与3Des加密解密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。