非常简单的MD5加密和解密(即用即copy)

点击帮助灯泡引用就可使用

//生成MD5帮助文件文件

public class MD5Help
{
  ///MD5加密 方法类
  public static string MD5Encrypt(string pToEncrypt, string sKey)
  {
  DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  byte[] inputByteArray = Encoding.Default.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();

  }

  ///MD5解密 方法类
  public static string MD5Decrypt(string pToDecrypt, string sKey)
  {
  DESCryptoServiceProvider des = new DESCryptoServiceProvider();

  byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
  for (int x = 0; x < pToDecrypt.Length / 2; x++)
  {
  int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
  inputByteArray[x] = (byte)i;
  }

  des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
  des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
  MemoryStream ms = new MemoryStream();
  CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
  cs.Write(inputByteArray, 0, inputByteArray.Length);
  cs.FlushFinalBlock();

  StringBuilder ret = new StringBuilder();

  return System.Text.Encoding.Default.GetString(ms.ToArray());
  }
}

-------------------------------------------------------------------------------------------------

使用:

string IPassword = MD5Help.MD5Encrypt(password, ConfigurationManager.AppSettings["sKey"].ToString()); //加密 后面的参数是密钥
string JPassword = MD5Help.MD5Decrypt(Password, ConfigurationManager.AppSettings["sKey"].ToString()); //解密 后面的参数是密钥

webConfig配置:

<!--Md5加密key-->
<add key="sKey" value="JUNDAOXT"/>

最新文章

  1. Nginx 服务器 之Nginx与tomcat实现负载均衡
  2. ProxyPattern
  3. 【Hadoop】HDFS的运行原理
  4. 如何观察JS的事件队列的执行划分
  5. SPOJ #10657. LOGIC (riddle)
  6. [JS]Javascript的this用法
  7. Codevs 1097 校门外的树
  8. NGUI自适应分辨率,黑边自动填充, 无黑边,等比例缩放
  9. 使用Druid作为数据源
  10. 【网络流#4】UVA 753 最大流
  11. C# Excel或表格插件
  12. bzoj2096[Poi2010]Pilots 单调队列
  13. mysql8.0.13修改密码
  14. 计算机网络学习-20180901-TCP/IP协议的五大分层
  15. SpringBoot Controller 中 HttpServletRequest ServletInputStream 读取不到数据该怎么处理
  16. 修正mui的上拉加载和下拉刷新的一次未完成就执行下一次的请求
  17. POJ2376 Cleaning Shifts
  18. Tomcat8.5配置https启动报空指针错误
  19. 『TensorFlow』第十弹_队列&amp;多线程_道路多坎坷
  20. 在chrome开发者工具中观察函数调用栈、作用域链、闭包

热门文章

  1. 利用docker在window7下安装TensorFlow
  2. QTableWidget和 QTableView翻页效果(准确计算Scroll,然后使用setSliderPosition函数)
  3. 更改当前电源策略(使用SetActivePwrScheme API函数),自定义电源按钮动作(设置GLOBAL_POWER_POLICY)
  4. uniConnection断线重联(tag属性颇有深意,这样就可以在某些情况下,不用继承实现新控件就可以达到自己的目的)
  5. ThoughtWorks 面试备忘录
  6. 在 Windows 中编译 Github 中的 GO 项目
  7. python bmp image injection
  8. Neo4j 爬坑笔记for3.2.6
  9. 为什么现在这么多人开始学习Python?
  10. Python解释器安装教程以及环境变量配置