博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MD5密钥的加密,解密 生成密钥
阅读量:5245 次
发布时间:2019-06-14

本文共 2559 字,大约阅读时间需要 8 分钟。

///         /// 加密        ///         /// 要加密的字符串,即明文        /// 公共密钥        /// 是否使用MD5生成机密秘钥        /// 
加密后的字符串,即密文
public static string Encrypt(string toEncrypt, string key, bool useHashing) { try { byte[] keyArray; byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); if (useHashing) { MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)); } else keyArray = UTF8Encoding.UTF8.GetBytes(key); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); } catch { } return string.Empty; } /// /// 解密 /// /// 要解密的字符串,即密文 /// 公共密钥 /// 是否使用MD5生成机密密钥 ///
解密后的字符串,即明文
public static string Decrypt(string toDecrypt, string key, bool useHashing) { try { byte[] keyArray; byte[] toEncryptArray = Convert.FromBase64String(toDecrypt); if (useHashing) { MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)); } else keyArray = UTF8Encoding.UTF8.GetBytes(key); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return UTF8Encoding.UTF8.GetString(resultArray); } catch { } return string.Empty; }

 

转载于:https://www.cnblogs.com/OleRookie/p/5318249.html

你可能感兴趣的文章
pytest的参数化测试
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
docker运行环境安装-centos(一)
查看>>
安装Pygame和pip的艰辛之路
查看>>
Hibernate的实体类为什么需要实现 java.io.Serializable 接口
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
Min Stack
查看>>
老鸟的Python入门教程
查看>>
Ubuntu下非常给力的下载工具--uget+aria2
查看>>
Nginx配置
查看>>
棋盘覆盖问题
查看>>
vs2003无法调试 解决方法收藏
查看>>
.net-一般处理程序及生命周期
查看>>
linux sed命令
查看>>
[Cycle.js] Making our toy DOM Driver more flexible
查看>>
LeetCode 160. Intersection of Two Linked Lists
查看>>
html标签的嵌套规则
查看>>
10个实用的但偏执的Java编程技术
查看>>
C/C++笔试、面试题(下)
查看>>