Des与3Des加密解密
/// <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加密解密相关推荐
- PB DES、3DES加密解密(简单便捷)
PB DES\3DES加密解密 通过VDN的uo_vdncore组件快速简单实现PB的DES.3DES.AES.RSA.Base64.Hex.SHA.MD5.HMac等类型的加密解密,本章我们主要讲解 ...
- java之php、Android、JAVA、C# 3DES加密解密
异常如下 1.javax.crypto.BadPaddingException: Given final block not properly padded 1)要确认下是否加密和解密都是使用相同的填 ...
- java 3des加密_Java使用3DES加密解密的流程 - 3des加密解密详细解释
Java使用3DES加密解密的流程 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new Secret ...
- Java中3DES加密解密示例
在java中调用sun公司提供的3DES加密解密算法时,需要使用到$JAVA_HOME/jre/lib/目录下如下的4个jar包: jce.jar security/US_export_policy. ...
- Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用)
一.简介 3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称. 它相当于是对每个数据块应用三次DES加密算 ...
- iOS 3DES加密解密(一行代码搞定)
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...
- 一行代码实现IOS 3DES加密解密
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...
- 简进祥==iOS 3DES加密解密
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...
- pyDes 库 DES 与 3DES 加解密
废话不多说,直接开干! 介绍基于 Python pyDes 库实现 DES 与 3DES 加解密 切换 des 与 3des 的地方在 init 初始化函数中 trans_base64=False 是 ...
最新文章
- ios mysql 修改数据,iOS数据库FMDB--增删改查(模糊查询)实写记录
- 浅谈lastIndexOf
- biztalk adapter for mysql_BizTalk Schedule Adapter的使用
- 矩阵的三角分解(LU)法(高斯消去法的矩阵形式分析)
- hihocoder-1615-矩阵游戏II
- 高考与机器学习训练测试
- 在线音乐用户寄望用爱发电,资本不愿无米之炊
- ImportError: No module named _tkinter, please install the python-tk package ubuntu运行tkinter错误
- 解决nginx不支持pathinfo Thinkphp命名空间问题
- kubelet启动失败_kubelet 架构浅析
- Python第三方库的安装及路径查看总结
- vue二维码生成插件 - npm安装篇
- “3D几何与视觉技术”全球在线研讨会第六期第七期
- redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置
- Hibernate-02-核心配置文件Hibernate.cfg.xml
- java案例代码2-素数判断测试
- 计算机专业毕业设计—351个VB管理系统源码打包(计算机专业整理)
- 台式机黑苹果Mac OS Big Sur 11.3.1安装指引
- 如何用matlab拟合二元函数,matlab二元函数拟合怎么设计函数。
- 12张手绘图,我搞懂了微服务架构