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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

EncryptionHelper.cs(20170223)

發(fā)布時(shí)間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EncryptionHelper.cs(20170223) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks;namespace System.CRM.Common {/// <summary>/// 加解密 助手類/// </summary>public class EncryptionHelper{#region AES 加密 解密/// <summary>/// AES加密/// </summary>/// <param name="str">要加密字符串</param>/// <param name="aeskey">要加密字符串的密鑰(16位或32位)</param>/// <returns>返回加密后字符串</returns>public static String EncryptAES(String str, string aeskey){Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(aeskey);Byte[] toEncryptArray = System.Text.UTF8Encoding.UTF8.GetBytes(str);System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();rDel.Key = keyArray;rDel.Mode = System.Security.Cryptography.CipherMode.ECB;rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateEncryptor();Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);return Convert.ToBase64String(resultArray, 0, resultArray.Length);}/// <summary>/// AES解密/// </summary>/// <param name="str">要解密字符串</param>/// <param name="aeskey">要加密字符串的密鑰(16位或32位)</param>/// <returns>返回解密后字符串</returns>public static String DecryptAES(String str, string aeskey){Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(aeskey);Byte[] toEncryptArray = Convert.FromBase64String(str);System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();rDel.Key = keyArray;rDel.Mode = System.Security.Cryptography.CipherMode.ECB;rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateDecryptor();Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);return System.Text.UTF8Encoding.UTF8.GetString(resultArray);}#endregion#region DES加解密/// <summary>/// 創(chuàng)建Key/// </summary>/// <returns></returns>public static string GenerateKey(){DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();return ASCIIEncoding.ASCII.GetString(desCrypto.Key);}/// <summary>/// DES加密方法一/// </summary>/// <param name="pToEncrypt">要加密的文本</param>/// <param name="sKey">通過(guò)GenerateKey()獲取(加解密必須一致)</param>/// <returns></returns>public static string DESEncrypt(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();}/// <summary>/// DES解密方法一/// </summary>/// <param name="pToDecrypt">要解密的文本</param>/// <param name="sKey">通過(guò)GenerateKey()獲取(加解密必須一致)</param>/// <returns></returns>public static string DESDecrypt(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());}/// <summary>/// DES加密方法二/// </summary>/// <param name="sInputString">要加密的文本</param>/// <param name="sKey">通過(guò)GenerateKey()獲取(加解密必須一致)</param>/// <returns></returns>public static 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);}/// <summary>/// DES解密方法二/// </summary>/// <param name="sInputString">要解密的文本</param>/// <param name="sKey"></param>/// <returns>通過(guò)GenerateKey()獲取(加解密必須一致)</returns>public static 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);}#endregion#region base64加解密/// <summary>/// base64加密/// </summary>/// <param name="strdata">加密的明文</param>/// <returns></returns>public static string ToEncryptionBase64String(string strdata){byte[] bytes = Encoding.UTF8.GetBytes(strdata);string str = Convert.ToBase64String(bytes);return str;}/// <summary>/// base64解密/// </summary>/// <param name="strdata">解密的密文</param>/// <returns></returns>public static string ToDecryptBase64String(string strdata){byte[] bytes = Convert.FromBase64String(strdata);string str = Encoding.UTF8.GetString(bytes);return str;}#endregion#region MD5加密/// <summary>/// MD5加密(32位大寫)/// </summary>/// <param name="txt">明文</param>/// <returns></returns>public static string GetMD5(string txt){byte[] result = Encoding.Default.GetBytes(txt.Trim());MD5 md5 = new MD5CryptoServiceProvider();byte[] output = md5.ComputeHash(result);return BitConverter.ToString(output).Replace("-", "");}

/// <summary>
/// MD5加密(32位小寫)
/// </summary>
/// <param name="txt">明文</param>
/// <returns></returns>
public static string GetMD5_2(string txt)
{
byte[] result = Encoding.Default.GetBytes(txt.Trim());
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(result);
string s = BitConverter.ToString(output).Replace("-", "");
s = s.ToLower();
return s;
}

/**/
/// <summary>
/// MD5 16位加密 加密后密碼為大寫
/// </summary>
/// <param name="ConvertString"></param>
/// <returns></returns>
public static string GetMd5Str(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
t2 = t2.Replace("-", "");
return t2;
}

/**/
/// <summary>
/// MD5 16位加密 加密后密碼為小寫
/// </summary>
/// <param name="ConvertString"></param>
/// <returns></returns>
public static string GetMd5Str2(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
t2 = t2.Replace("-", "");

t2 = t2.ToLower();

return t2;
}

#endregion



/// <summary>
/// 標(biāo)準(zhǔn)MD5 32位小寫
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string UserMd5(string str)
{
string cl = str;
string pwd = "";
MD5 md5 = MD5.Create();//實(shí)例化一個(gè)md5對(duì)像
// 加密后是一個(gè)字節(jié)類型的數(shù)組,這里要注意編碼UTF8/Unicode等的選擇 
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
// 通過(guò)使用循環(huán),將字節(jié)類型的數(shù)組轉(zhuǎn)換為字符串,此字符串是常規(guī)字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 將得到的字符串使用十六進(jìn)制類型格式。格式后的字符是小寫的字母,如果使用大寫(X)則格式后的字符是大寫字符
pwd = pwd + s[i].ToString("x2");

}
return pwd;
}

/// <summary>
/// 標(biāo)準(zhǔn)MD5 32位大寫
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string UserMd5_2(string str)
{
string cl = str;
string pwd = "";
MD5 md5 = MD5.Create();//實(shí)例化一個(gè)md5對(duì)像
// 加密后是一個(gè)字節(jié)類型的數(shù)組,這里要注意編碼UTF8/Unicode等的選擇 
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
// 通過(guò)使用循環(huán),將字節(jié)類型的數(shù)組轉(zhuǎn)換為字符串,此字符串是常規(guī)字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 將得到的字符串使用十六進(jìn)制類型格式。格式后的字符是小寫的字母,如果使用大寫(X)則格式后的字符是大寫字符
pwd = pwd + s[i].ToString("X2");

}
return pwd;
}


} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/zyx321/p/6435908.html

總結(jié)

以上是生活随笔為你收集整理的EncryptionHelper.cs(20170223)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。