极乐门资源网 Design By www.ioogu.com
#region DES加密解密 /// <summary> /// DES加密 /// </summary> /// <param name="strSource">待加密字串</param> /// <param name="key">32位Key值</param> /// <returns>加密后的字符串</returns> public string DESEncrypt(string strSource) { return DESEncrypt(strSource, DESKey); } public string DESEncrypt(string strSource, byte[] key) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, sa.CreateEncryptor(), CryptoStreamMode.Write); byte[] byt = Encoding.Unicode.GetBytes(strSource); cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Convert.ToBase64String(ms.ToArray()); } /// <summary> /// DES解密 /// </summary> /// <param name="strSource">待解密的字串</param> /// <param name="key">32位Key值</param> /// <returns>解密后的字符串</returns> public string DESDecrypt(string strSource) { return DESDecrypt(strSource, DESKey); } public string DESDecrypt(string strSource, byte[] key) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; ICryptoTransform ct = sa.CreateDecryptor(); byte[] byt = Convert.FromBase64String(strSource); MemoryStream ms = new MemoryStream(byt); CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Read); StreamReader sr = new StreamReader(cs, Encoding.Unicode); return sr.ReadToEnd(); } #endregion #region 一个用hash实现的加密解密方法 /// <summary> /// 加密 /// </summary> /// <param name="src"></param> /// <returns></returns> public static string EncryptStrByHash(string src) { if (src.Length == 0) { return ""; } byte[] HaKey = System.Text.Encoding.ASCII.GetBytes((src + "Test").ToCharArray()); byte[] HaData = new byte[20]; HMACSHA1 Hmac = new HMACSHA1(HaKey); CryptoStream cs = new CryptoStream(Stream.Null, Hmac, CryptoStreamMode.Write); try { cs.Write(HaData, 0, HaData.Length); } finally { cs.Close(); } string HaResult = System.Convert.ToBase64String(Hmac.Hash).Substring(0, 16); byte[] RiKey = System.Text.Encoding.ASCII.GetBytes(HaResult.ToCharArray()); byte[] RiDataBuf = System.Text.Encoding.ASCII.GetBytes(src.ToCharArray()); byte[] EncodedBytes = { }; MemoryStream ms = new MemoryStream(); RijndaelManaged rv = new RijndaelManaged(); cs = new CryptoStream(ms, rv.CreateEncryptor(RiKey, RiKey), CryptoStreamMode.Write); try { cs.Write(RiDataBuf, 0, RiDataBuf.Length); cs.FlushFinalBlock(); EncodedBytes = ms.ToArray(); } finally { ms.Close(); cs.Close(); } return HaResult + System.Convert.ToBase64String(EncodedBytes); } /// <summary> /// 解密 /// </summary> /// <param name="src"></param> /// <returns></returns> public static string DecrypStrByHash(string src) { if (src.Length < 40) return ""; byte[] SrcBytes = System.Convert.FromBase64String(src.Substring(16)); byte[] RiKey = System.Text.Encoding.ASCII.GetBytes(src.Substring(0, 16).ToCharArray()); byte[] InitialText = new byte[SrcBytes.Length]; RijndaelManaged rv = new RijndaelManaged(); MemoryStream ms = new MemoryStream(SrcBytes); CryptoStream cs = new CryptoStream(ms, rv.CreateDecryptor(RiKey, RiKey), CryptoStreamMode.Read); try { cs.Read(InitialText, 0, InitialText.Length); } finally { ms.Close(); cs.Close(); } System.Text.StringBuilder Result = new System.Text.StringBuilder(); for (int i = 0; i < InitialText.Length; ++i) if (InitialText[i] > 0) Result.Append((char)InitialText[i]); return Result.ToString(); } /// <summary> /// 对加密后的密文重新编码,如果密文长>16,则去掉前16个字符,如果长度小于16,返回空字符串 /// </summary> /// <param name="s"></param> /// <returns></returns> public string ReEncryptStrByHash(string s) { string e = Encrypt.EncryptStrByHash(s); return ((e.Length > 16) ""); } #endregion #region Md5加密,生成16位或32位,生成的密文都是大写 public static string Md5To16(string str) { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str)), 4, 8); t2 = t2.Replace("-", ""); return t2; } //// <summary> /// MD5 32位加密 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string Md5To32(string str) { string pwd = ""; MD5 md5 = MD5.Create(); byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); for (int i = 0; i < s.Length; i++) { pwd = pwd + s[i].ToString("X"); } return pwd; } #endregion #region 3DES加密解密 public string Encrypt3DES(string str) { //密钥 string sKey = "wyw308"; // //矢量,可为空 string sIV = "scf521"; // //构造对称算法 SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider(); ICryptoTransform ct; MemoryStream ms; CryptoStream cs; byte[] byt; mCSP.Key = Convert.FromBase64String(sKey); mCSP.IV = Convert.FromBase64String(sIV); mCSP.Mode = System.Security.Cryptography.CipherMode.ECB; mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7; ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV); byt = Encoding.UTF8.GetBytes(str); ms = new MemoryStream(); cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Convert.ToBase64String(ms.ToArray()); } /// <summary> /// 带指定密钥和矢量的3DES加密 /// </summary> /// <param name="str"></param> /// <param name="sKey"></param> /// <param name="sIV"></param> /// <returns></returns> public string Encrypt3DES(string str, string sKey, string sIV) { SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider(); ICryptoTransform ct; MemoryStream ms; CryptoStream cs; byte[] byt; mCSP.Key = Convert.FromBase64String(sKey); mCSP.IV = Convert.FromBase64String(sIV); mCSP.Mode = System.Security.Cryptography.CipherMode.ECB; mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7; ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV); byt = Encoding.UTF8.GetBytes(str); ms = new MemoryStream(); cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Convert.ToBase64String(ms.ToArray()); } //解密 public string Decrypt3DES(string Value) { string sKey = "wyw308"; string sIV = "scf521"; SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider(); ICryptoTransform ct; MemoryStream ms; CryptoStream cs; byte[] byt; mCSP.Key = Convert.FromBase64String(sKey); mCSP.IV = Convert.FromBase64String(sIV); mCSP.Mode = System.Security.Cryptography.CipherMode.ECB; mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7; ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV); byt = Convert.FromBase64String(Value); ms = new MemoryStream(); cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Encoding.UTF8.GetString(ms.ToArray()); } /// <summary> /// 带指定密钥和矢量的3DES解密 /// </summary> /// <param name="Value"></param> /// <param name="sKey"></param> /// <param name="sIV"></param> /// <returns></returns> public string Decrypt3DES(string str, string sKey, string sIV) { SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider(); ICryptoTransform ct; MemoryStream ms; CryptoStream cs; byte[] byt; mCSP.Key = Convert.FromBase64String(sKey); mCSP.IV = Convert.FromBase64String(sIV); mCSP.Mode = System.Security.Cryptography.CipherMode.ECB; mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7; ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV); byt = Convert.FromBase64String(str); ms = new MemoryStream(); cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Encoding.UTF8.GetString(ms.ToArray()); } #endregion #region 一个简单的加密解密方法,只支持英文 public static string EnCryptEnStr(string str) //倒序加1加密 { byte[] by = new byte[str.Length]; for (int i = 0; i <= str.Length - 1; i++) { by[i] = (byte)((byte)str[i] + 1); } str = ""; for (int i = by.Length - 1; i >= 0; i--) { str += ((char)by[i]).ToString(); } return str; } public static string DeCryptEnStr(string str) //顺序减1解码 { byte[] by = new byte[str.Length]; for (int i = 0; i <= str.Length - 1; i++) { by[i] = (byte)((byte)str[i] - 1); } str = ""; for (int i = by.Length - 1; i >= 0; i--) { str += ((char)by[i]).ToString(); } return str; } #endregion #region 一个简单的加密解密方法,在上一个的基础上支持中文 public static string EnCryptCnStr(string str) { string htext = ""; // blank text for (int i = 0; i < str.Length; i++) { htext = htext + (char)(str[i] + 10 - 1 * 2); } return htext; } public static string DeCryptCnStr(string str) { string dtext = ""; for (int i = 0; i < str.Length; i++) { dtext = dtext + (char)(str[i] - 10 + 1 * 2); } return dtext; } #endregion #region Url地址编码解码 /// <summary> /// 编码Url地址 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string UrlEncode(string url) { byte[] mByte = null; mByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(url); return System.Web.HttpUtility.UrlEncode(mByte); } /// <summary> /// 解码Url地址 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string UrlDecode(string url) { return HttpUtility.UrlDecode(url, System.Text.Encoding.GetEncoding("GB2312")); } #endregion
以上所述就是本文的全部内容了,希望大家能够喜欢。
标签:
ASP.NET,加密,解密
极乐门资源网 Design By www.ioogu.com
极乐门资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com
暂无ASP.NET加密解密算法分享的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年01月25日
2025年01月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]