/// <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加密解密相关推荐

  1. PB DES、3DES加密解密(简单便捷)

    PB DES\3DES加密解密 通过VDN的uo_vdncore组件快速简单实现PB的DES.3DES.AES.RSA.Base64.Hex.SHA.MD5.HMac等类型的加密解密,本章我们主要讲解 ...

  2. java之php、Android、JAVA、C# 3DES加密解密

    异常如下 1.javax.crypto.BadPaddingException: Given final block not properly padded 1)要确认下是否加密和解密都是使用相同的填 ...

  3. java 3des加密_Java使用3DES加密解密的流程 - 3des加密解密详细解释

    Java使用3DES加密解密的流程 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new Secret ...

  4. Java中3DES加密解密示例

    在java中调用sun公司提供的3DES加密解密算法时,需要使用到$JAVA_HOME/jre/lib/目录下如下的4个jar包: jce.jar security/US_export_policy. ...

  5. Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用)

    一.简介 3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称. 它相当于是对每个数据块应用三次DES加密算 ...

  6. iOS 3DES加密解密(一行代码搞定)

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...

  7. 一行代码实现IOS 3DES加密解密

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...

  8. 简进祥==iOS 3DES加密解密

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...

  9. pyDes 库 DES 与 3DES 加解密

    废话不多说,直接开干! 介绍基于 Python pyDes 库实现 DES 与 3DES 加解密 切换 des 与 3des 的地方在 init 初始化函数中 trans_base64=False 是 ...

最新文章

  1. ios mysql 修改数据,iOS数据库FMDB--增删改查(模糊查询)实写记录
  2. 浅谈lastIndexOf
  3. biztalk adapter for mysql_BizTalk Schedule Adapter的使用
  4. 矩阵的三角分解(LU)法(高斯消去法的矩阵形式分析)
  5. hihocoder-1615-矩阵游戏II
  6. 高考与机器学习训练测试
  7. 在线音乐用户寄望用爱发电,资本不愿无米之炊
  8. ImportError: No module named _tkinter, please install the python-tk package ubuntu运行tkinter错误
  9. 解决nginx不支持pathinfo Thinkphp命名空间问题
  10. kubelet启动失败_kubelet 架构浅析
  11. Python第三方库的安装及路径查看总结
  12. vue二维码生成插件 - npm安装篇
  13. “3D几何与视觉技术”全球在线研讨会第六期第七期
  14. redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置
  15. Hibernate-02-核心配置文件Hibernate.cfg.xml
  16. java案例代码2-素数判断测试
  17. 计算机专业毕业设计—351个VB管理系统源码打包(计算机专业整理)
  18. 台式机黑苹果Mac OS Big Sur 11.3.1安装指引
  19. 如何用matlab拟合二元函数,matlab二元函数拟合怎么设计函数。
  20. 12张手绘图,我搞懂了微服务架构

热门文章

  1. Qt 设置窗体或控件渐变消失
  2. AI研发工程师成长指南
  3. 三个不等_2道真题,讲透「基本不等式」的使用原则 | 真题精讲-11
  4. 用strtotime()和date()函数算出2019年9月的周日日期
  5. 死锁产生的原因及条件和手写死锁
  6. Docker: Jenkins里的pipeline编写基本技巧
  7. C高级第一次PTA作业(2)
  8. C风格字符串与C++风格字符串
  9. 母版事件中注册javascript脚本
  10. 基于Response的将数据导出到Excel