DotNet中几种常用的加密算法
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,在.NET项目中,我们较多的使用到加密这个操作。因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要。现在提供几种常用的加密/解密算法。1.用于文本和Base64编码文本的互相
千家信息网最后更新 2025年12月01日DotNet中几种常用的加密算法
在.NET项目中,我们较多的使用到加密这个操作。因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要。现在提供几种常用的加密/解密算法。
1.用于文本和Base64编码文本的互相转换 和 Byte[]和Base64编码文本的互相转换:
(1).将普通文本转换成Base64编码的文本
////// 将普通文本转换成Base64编码的文本 /// /// 普通文本 ///public static string StringToBase64String(string value) { if (string.IsNullOrEmpty(value)) { throw new ArgumentNullException(value); } try { var binBuffer = (new UnicodeEncoding()).GetBytes(value); var base64ArraySize = (int)Math.Ceiling(binBuffer.Length / 3d) * 4; var charBuffer = new char[base64ArraySize]; Convert.ToBase64CharArray(binBuffer, 0, binBuffer.Length, charBuffer, 0); var s = new string(charBuffer); return s; } catch (Exception ex) { throw new Exception(ex.Message); } }
(2).将Base64编码的文本转换成普通文本
////// 将Base64编码的文本转换成普通文本 /// /// Base64编码的文本 ///public static string Base64StringToString(string base64) { if (string.IsNullOrEmpty(base64)) { throw new ArgumentNullException(base64); } try { var charBuffer = base64.ToCharArray(); var bytes = Convert.FromBase64CharArray(charBuffer, 0, charBuffer.Length); return (new UnicodeEncoding()).GetString(bytes); } catch (Exception ex) { throw new Exception(ex.Message); } }
(3).将Byte[]转换成Base64编码文本
////// 将Byte[]转换成Base64编码文本 /// /// Byte[] ///public string ToBase64(byte[] binBuffer) { if (binBuffer == null) { throw new ArgumentNullException("binBuffer"); } try { var base64ArraySize = (int)Math.Ceiling(binBuffer.Length / 3d) * 4; var charBuffer = new char[base64ArraySize]; Convert.ToBase64CharArray(binBuffer, 0, binBuffer.Length, charBuffer, 0); var s = new string(charBuffer); return s; } catch (Exception ex) { throw new Exception(ex.Message); } }
(4).将Base64编码文本转换成Byte[]
////// 将Base64编码文本转换成Byte[] /// /// Base64编码文本 ///public byte[] Base64ToBytes(string base64) { if (string.IsNullOrEmpty(base64)) { throw new ArgumentNullException(base64); } try { var charBuffer = base64.ToCharArray(); var bytes = Convert.FromBase64CharArray(charBuffer, 0, charBuffer.Length); return bytes; } catch (Exception ex) { throw new Exception(ex.Message); } }
2. DES加密/解密类。
(1).加密
private static readonly string KEY = "pengze0902"; ////// 加密 /// /// ///public static string Encrypt(string Text) { return Encrypt(Text, KEY); } /// /// 加密数据 /// /// /// ///public static string Encrypt(string Text, string sKey) { var des = new DESCryptoServiceProvider(); var inputByteArray = Encoding.Default.GetBytes(Text); var bKey = Encoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8)); des.Key = bKey; des.IV = bKey; var ms = new System.IO.MemoryStream(); var cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); var ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } return ret.ToString(); }
(2).解密
private static readonly string KEY = "pengze0902"; ////// 解密 /// /// ///public static string Decrypt(string text) { return Decrypt(text, KEY); } /// /// 解密数据 /// /// /// ///public static string Decrypt(string text, string sKey) { var des = new DESCryptoServiceProvider(); var len = text.Length / 2; byte[] inputByteArray = new byte[len]; int x; for (x = 0; x < len; x++) { var i = Convert.ToInt32(text.Substring(x * 2, 2), 16); inputByteArray[x] = (byte)i; } var bKey = Encoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8)); des.Key = bKey; des.IV = bKey; System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Encoding.Default.GetString(ms.ToArray()); }
(3).取得MD5加密串新航道培训
/////// 取得MD5加密串 /// /// 源明文字符串 ///密文字符串 public static string Md5Hash(string input) { var md5 = new MD5CryptoServiceProvider(); var bs = Encoding.UTF8.GetBytes(input); bs = md5.ComputeHash(bs); var s = new StringBuilder(); foreach (var b in bs) { s.Append(b.ToString("x2").ToUpper()); } var password = s.ToString(); return password; }
3.MD5加密
(1). 32位大写
////// 32位大写 /// ///public static string Upper32(string s) { var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5"); if (hashPasswordForStoringInConfigFile != null) s = hashPasswordForStoringInConfigFile.ToString(); return s.ToUpper(); }
(2). 32位小写
////// 32位小写 /// ///public static string Lower32(string s) { var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5"); if (hashPasswordForStoringInConfigFile != null) s = hashPasswordForStoringInConfigFile.ToString(); return s.ToLower(); }
(3).16位大写
////// 16位大写 /// ///public static string Upper16(string s) { var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5"); if (hashPasswordForStoringInConfigFile != null) s = hashPasswordForStoringInConfigFile.ToString(); return s.ToUpper().Substring(8, 16); }
(4).16位小写
////// 16位小写 /// ///public static string Lower16(string s) { var hashPasswordForStoringInConfigFile = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5"); if (hashPasswordForStoringInConfigFile != null) s = hashPasswordForStoringInConfigFile.ToString(); return s.ToLower().Substring(8, 16); }
4.Sha1签名算法
////// 签名算法 /// /// ///public static string GetSha1(string str) { if (string.IsNullOrEmpty(str)) { throw new ArgumentNullException(str); } try { //建立SHA1对象 SHA1 sha = new SHA1CryptoServiceProvider(); //将mystr转换成byte[] var enc = new ASCIIEncoding(); var dataToHash = enc.GetBytes(str); //Hash运算 var dataHashed = sha.ComputeHash(dataToHash); //将运算结果转换成string var hash = BitConverter.ToString(dataHashed).Replace("-", ""); return hash; } catch (Exception ex) { throw new Exception(ex.Message); } }
5.Sha256加密算法
////// 将字符串转换为sha256散列 /// /// 字符串进行转换 ///sha256散列或null public static string ToSha256(this string data) { try { if (string.IsNullOrEmpty(data)) return null; var hashValue = new SHA256Managed().ComputeHash(Encoding.UTF8.GetBytes(data)); var hex = hashValue.Aggregate("", (current, x) => current + String.Format("{0:x2}", x)); if (string.IsNullOrEmpty(hex)) throw new Exception("Erro creating SHA256 hash"); return hex; } catch (Exception e) { throw new Exception(e.Message, e); } }
以上是一些较为常用的算法代码。
文本
编码
加密
算法
普通
大写
字符
字符串
小写
常用
信息
数据
项目
运算
重要
安全
代码
密文
对象
明文
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳市文明城市网络安全
服务器被炸视频大全
驾驭互联网科技
大通网络技术有限公司
asp弹出提示框包含数据库字段
全球网络安全委员会简称
抖音群控软件开发
db3数据库怎么编辑
戴尔服务器客服电话
江苏苏州公安局网络安全支队长
尚游网络技术有限公司深圳规模
微软软件开发时间安排
PG查数据库数据量
汉中软件开发排名
数据库出现快照过旧
安徽千诺互联网科技
推进开展网络安全培训
安卓软件开发传值
完美世界社区服务器的指令
mysql数据库从库
新浜网络安全宣传
网络安全宣传周宣传内容
浙江什么是网络技术服务咨询报价
系统数据库安全性复制管理
数据库操作类 源码
在线sql转数据库模型
数据库管理员术语
电厂网络安全监测装置 谁投资
杭州成典网络技术公司
使命召唤战区被服务器永久封锁