public sealed class EncryptUtils{#region Base64加密解密/// <summary>/// Base64加密/// </summary>/// <param name="input">需要加密的字符串</param>/// <returns></returns>public static string Base64Encrypt(string input){return Base64Encrypt(input, new UTF8Encoding());}/// <summary>/// Base64加密/// </summary>/// <param name="input">需要加密的字符串</param>/// <param name="encode">字符编码</param>/// <returns></returns>public static string Base64Encrypt(string input, Encoding encode){return Convert.ToBase64String(encode.GetBytes(input));}/// <summary>/// Base64解密/// </summary>/// <param name="input">需要解密的字符串</param>/// <returns></returns>public static string Base64Decrypt(string input){return Base64Decrypt(input, new UTF8Encoding());}/// <summary>/// Base64解密/// </summary>/// <param name="input">需要解密的字符串</param>/// <param name="encode">字符的编码</param>/// <returns></returns>public static string Base64Decrypt(string input, Encoding encode){return encode.GetString(Convert.FromBase64String(input));}#endregion#region DES加密解密/// <summary>/// DES加密/// </summary>/// <param name="data">加密数据</param>/// <param name="key">8位字符的密钥字符串</param>/// <param name="iv">8位字符的初始化向量字符串</param>/// <returns></returns>public static string DESEncrypt(string data, string key, string iv){byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(key);byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(iv);DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();int i = cryptoProvider.KeySize;MemoryStream ms = new MemoryStream();CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);StreamWriter sw = new StreamWriter(cst);sw.Write(data);sw.Flush();cst.FlushFinalBlock();sw.Flush();return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);}/// <summary>/// DES解密/// </summary>/// <param name="data">解密数据</param>/// <param name="key">8位字符的密钥字符串(需要和加密时相同)</param>/// <param name="iv">8位字符的初始化向量字符串(需要和加密时相同)</param>/// <returns></returns>public static string DESDecrypt(string data, string key, string iv){byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(key);byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(iv);byte[] byEnc;try{byEnc = Convert.FromBase64String(data);}catch{return null;}DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();MemoryStream ms = new MemoryStream(byEnc);CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);StreamReader sr = new StreamReader(cst);return sr.ReadToEnd();}#endregion#region MD5加密/// <summary>/// MD5加密/// </summary>/// <param name="input">需要加密的字符串</param>/// <returns></returns>public static string MD5Encrypt(string input){return MD5Encrypt(input, new UTF8Encoding());}/// <summary>/// MD5加密/// </summary>/// <param name="input">需要加密的字符串</param>/// <param name="encode">字符的编码</param>/// <returns></returns>public static string MD5Encrypt(string input, Encoding encode){MD5 md5 = new MD5CryptoServiceProvider();byte[] t = md5.ComputeHash(encode.GetBytes(input));StringBuilder sb = new StringBuilder(32);for (int i = 0; i < t.Length; i++)sb.Append(t[i].ToString("x").PadLeft(2, '0'));return sb.ToString();}/// <summary>/// MD5对文件流加密/// </summary>/// <param name="sr"></param>/// <returns></returns>public static string MD5Encrypt(Stream stream){MD5 md5serv = MD5CryptoServiceProvider.Create();byte[] buffer = md5serv.ComputeHash(stream);StringBuilder sb = new StringBuilder();foreach (byte var in buffer)sb.Append(var.ToString("x2"));return sb.ToString();}/// <summary>/// MD5加密(返回16位加密串)/// </summary>/// <param name="input"></param>/// <param name="encode"></param>/// <returns></returns>public static string MD5Encrypt16(string input, Encoding encode){MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();string result = BitConverter.ToString(md5.ComputeHash(encode.GetBytes(input)), 4, 8);result = result.Replace("-", "");return result;}#endregion#region 3DES 加密解密public static string DES3Encrypt(string data, string key){TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();DES.Key = ASCIIEncoding.ASCII.GetBytes(key);DES.Mode = CipherMode.CBC;DES.Padding = PaddingMode.PKCS7;ICryptoTransform DESEncrypt = DES.CreateEncryptor();byte[] Buffer = ASCIIEncoding.ASCII.GetBytes(data);return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));}public static string DES3Decrypt(string data, string key){TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();DES.Key = ASCIIEncoding.ASCII.GetBytes(key);DES.Mode = CipherMode.CBC;DES.Padding = System.Security.Cryptography.PaddingMode.PKCS7;ICryptoTransform DESDecrypt = DES.CreateDecryptor();string result = "";try{byte[] Buffer = Convert.FromBase64String(data);result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));}catch (Exception e){}return result;}#endregion}

转载于:https://www.cnblogs.com/ShoneH/p/4773611.html

C# 加密解密(DES,3DES,MD5,Base64) 类相关推荐

  1. php中des加密cbc模式,php中加密解密DES类的简单使用方法示例

    本文实例讲述了php中加密解密DES类的简单使用方法.分享给大家供大家参考,具体如下: 在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全 也可能为了规范,所以要正确使用DES加密解密 代 ...

  2. python加密解密 sha256_Python加密方法小结【md5,base64,sha1】

    本文实例总结了python加密方法.分享给大家供大家参考,具体如下: MD5加密: def md5(str): import hashlib m = hashlib.md5() m.update(st ...

  3. Http请求加密规则(3DES、Base64、HMAC SHA256)

    Http请求加密规则(3DES.Base64.HMAC SHA256) 如果使用了Https请求,那么大多数情况下就无需双方再制定一套加密规则,所以本人讲述的是使用Http请求时,对于一些安全性较高的 ...

  4. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  5. java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法

    java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...

  6. C#常用加密解密方法(MD5加密解密)

    在日常开发过程中,总会遇到需要加密解密的需求,这里我整理了C#常用的加密解密方法分享给大家. 先看看加密的基本概念: "加密",是一种限制对网络上传输数据的访问权的技术.原始数据( ...

  7. RSA加密解密DES加密解密AES

    文章目录 RSA java 依赖 RSACoder RSACoderTest js示例 DES 示例一 js java 示例2 js java AES AesUtil RSA java 依赖 < ...

  8. php结合md5的加密解密,php结合md5实现的加密解密方法,php结合md5加密解密_PHP教程...

    php结合md5实现的加密解密方法,php结合md5加密解密 本文实例讲述了php结合md5实现的加密解密方法.分享给大家供大家参考,具体如下: 最近在整理代码发现了一个不错的东西,结合md5的加解密 ...

  9. 加密解密-DES算法和RSA算法

    昨天忽然对加密解密有了兴趣,今天上班查找了一些资料,现在就整理一下吧:) 一.DES算法 这种算法如图所示,这里将描述它的每一个步骤.这个算法进行了16次迭代(圈),把各块明文交织起来与 从密钥中获得 ...

最新文章

  1. Symantec Backup Exec 2012 Agent For Linux安装
  2. # c++运算符重载之 前置++, 后置++, 负号运算符, 类型转换函数, 以及输入输出运算符...
  3. C#3.0 为我们带来什么(2) —— 自动属性
  4. 【Python】聊聊Pandas的前世今生
  5. as3通信AMF3协议的框架
  6. BugkuCTF-MISC题善用工具
  7. linux怎么修改bash,Linux操作系统中如何对Bash变量内容修改?
  8. Linux命令每五分钟执行一次,Linux crontab 每5秒钟执行一次 shell 脚本 的方法
  9. 3DShader之投影贴图(Projective Texturing)
  10. vector元素个数_STL之vector
  11. Linux学习之CentOS(一)--CentOS6.5环境搭建
  12. 使用cardview和recycleview时碰到的一些问题
  13. 服务器 '' 上的 MSDTC 不可用。
  14. vue3.0中使用echarts
  15. java+swing+mysql小型超市管理系统
  16. 记录如何卸载 Adobe 应用【Adobe Creative Cloud Cleaner Tool使用】
  17. 深度卷积网络:第三课
  18. 分布式系统时钟同步方案
  19. 11 个最常用的 AJAX 开发框架汇总
  20. win10下node.js升级

热门文章

  1. Ruby 3 有望引入静态类型
  2. 简单的利用IDEA搭建SpringBoot+Maven+Mybatis+自动生成代码
  3. lintcode---线段树查询||(区间元素个数)
  4. The file “Info.plist” couldn’t be opened because there is no such file
  5. 居住7年未交一分钱天然气使用费 女房主替租户偿还近4万元欠款
  6. JavaScript Tween算法及缓动效果
  7. 分布式服务跟踪及Spring Cloud的实现
  8. mysql数据库表的基本操作
  9. Json,String,Map之间的转换
  10. HDU1899 Sum the K-th's(树状数组)