MD5密码加密

  using System;

  using System.Security.Cryptography;

  using System.Text;

  namespace DimoNetwork.Common.DEncrypt

  {

  public enum MD5ResultMode : byte

  {

  Strong = 0,

  Weak = 1

  }

  ///

 

  /// 在应用程序中定义用于单向加密文本的方法

  ///

 

  public class TextEncrypt

  {

  private TextEncrypt()

  {

  }

  #region ========加密========

  ///

 

  /// 加密

  ///

 

  ///

  ///

  public static string Encrypt(string Text)

  {

  return Encrypt(Text, "DimoNet");

  }

  ///

 

  /// 加密数据

  ///

 

  ///

  ///

  ///

  public static string Encrypt(string Text, string sKey)

  {

  DESCryptoServiceProvider des = new DESCryptoServiceProvider();

  byte[] inputByteArray;

  inputByteArray = Encoding.Default.GetBytes(Text);

  des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

  des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

  System.IO.MemoryStream ms = new System.IO.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);

  }

  return ret.ToString();

  }

  ///

 

  /// MD5 加密

  ///

 

  ///要加密的字符串

  ///

  public static string MD5EncryptPassword(string password, int? length = null)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  return MD5EncryptPassword(password, MD5ResultMode.Strong, length);

  }

  ///

 

  /// MD5 加密

  ///

 

  ///要加密的字符串

  ///加密强度

  ///

  public static string MD5EncryptPassword(string password, MD5ResultMode mode, int? length = null)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();

  string str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)));

  if (length != null && length == 16)

  {

  str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)), 4, 8);

  }

  provider.Clear();

  if (mode != MD5ResultMode.Strong)

  {

  return str.Replace("-", null).Substring(8, 0x10);

  }

  return str.Replace("-", null);

  }

  #endregion

  #region ========解密========

  ///

 

  /// 解密

  ///

 

  ///

  ///

  public static string Decrypt(string Text)

  {

  return Decrypt(Text, "DimoNet");

  }

  ///

 

  /// 解密数据

  ///

 

  ///

  ///

  ///

  public static string Decrypt(string Text, string sKey)

  {

  DESCryptoServiceProvider des = new DESCryptoServiceProvider();

  int len;

  len = Text.Length / 2;

  byte[] inputByteArray = new byte[len];

  int x, i;

  for (x = 0; x < len; x++)

  {

  // i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);

  i = System.Convert.ToInt32(Text.Substring(x * 2, 2), 16);

  inputByteArray[x] = (byte)i;

  }

  des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

  des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

  System.IO.MemoryStream ms = new System.IO.MemoryStream();

  CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);

  cs.Write(inputByteArray, 0, inputByteArray.Length);

  cs.FlushFinalBlock();

  return Encoding.Default.GetString(ms.ToArray());

  }

  #endregion

  ///

 

  /// Base64 解码

  ///

 

  ///

  ///

  public static string Base64Decode(string message)

  {

  byte[] bytes = Convert.FromBase64String(message);

  return Encoding.UTF8.GetString(bytes);

  }

  ///

 

  /// Base64 编码

  ///

 

  ///

  ///

  public static string Base64Encode(string message)

  {

  return Convert.ToBase64String(Encoding.UTF8.GetBytes(message));

  }

  ///

 

  /// DSA 加密

  ///

 

  ///要加密的字符串

  ///

  public static string DSAEncryptPassword(string password)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  DSACryptoServiceProvider provider = new DSACryptoServiceProvider();

  string str = BitConverter.ToString(provider.SignData(Encoding.UTF8.GetBytes(password)));

  provider.Clear();

  return str.Replace("-", null);

  }

  ///

 

  /// MD5 加密

  ///

 

  ///要加密的字符串

  ///

  public static string EncryptPassword(string password)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  return MD5EncryptPassword(password);

  }

  ///

 

  /// MD5 加密

  ///

 

  ///要加密的字符串

  ///

  public static string MD5EncryptPassword(string password)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  return MD5EncryptPassword(password, MD5ResultMode.Strong);

  }

  ///

 

  /// MD5 加密

  ///

 

  ///要加密的字符串

  ///加密强度

  ///

  public static string MD5EncryptPassword(string password, MD5ResultMode mode)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();

  string str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)));

  provider.Clear();

  if (mode != MD5ResultMode.Strong)

  {

  return str.Replace("-", null).Substring(8, 0x10);

  }

  return str.Replace("-", null);

  }

  ///

 

  /// SHA1 加密

  ///

 

  ///要加密的字符串

  ///

  public static string SHA1EncryptPassword(string password)

  {

  if (password == null)

  {

  throw new ArgumentNullException("password");

  }

  SHA1CryptoServiceProvider provider = new SHA1CryptoServiceProvider();

  string str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)));

  provider.Clear();

  return str.Replace("-", null);

  }

  ///

 

  /// SHA256 加密

  ///

 

  ///要加密的字符串

  ///

  public static string SHA256(string password)

  {

  byte[] bytes = Encoding.UTF8.GetBytes(password);

  SHA256Managed managed = new SHA256Managed();

  return Convert.ToBase64String(managed.ComputeHash(bytes));

  }

  }

  }

  复制代码(编辑:雷林鹏 来源:网络)

转载于:https://www.cnblogs.com/pengpeng1208/p/9405362.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跳出IT运维怪圈 看南方报业如何主动出击

虽说世界上没有一劳永逸的事情&#xff0c;不过借助某些方案&#xff0c;IT运维倒可做到事半功倍。近日&#xff0c;南方报业传媒集团采用新华三智动远程运维服务解决方案&#xff0c;利用7*24级别安仔的桌面服务&#xff0c;实现IT运维智能化、自动化管理&#xff0c;有效保障…

ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0情况解决

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 报错&#xff1a;ORA-01841: (完整) 年份值必须介于 -4713 和 9999 之间, 且不为 0 2. 我的sql是&#xff1a; <!-- 查询 推荐下载…

网络传输与加密

谈到网络&#xff0c;就必然会涉及网络安全。但“安全”这个事情&#xff0c; 一下子就会让人联想到黑客&#xff0c;进而把“安全”这个事情无限放大为各种高大上、神秘莫测、不可知。这不是一个engineer应有的态度&#xff08;《一次艰难debug的反思》&#xff09;。 要讨论网…

21--最小栈

文章目录1.问题描述2. 代码详情1.问题描述 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的…

python读取excel

1 import xlrd2 book xlrd.open_workbook(app_student.xls)3 sheet book.sheet_by_index(0)4 # sheet2 book.sheet_by_name(shee1)5 # print(sheet.cell(0,0).value) #指定sheet页里面行和lie获取数据6 # print(sheet.cell(1,0).value) #指定sheet页里面行和lie获取数据7 # …

Expected MultipartHttpServletRequest: is a MultipartResolver configured方案。

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.报错&#xff1a;Expected MultipartHttpServletRequest: is a MultipartResolver configured &#xff1f; 2.解决&#xff1a; a…

软件开发中需要专职的 QA 吗?

导读&#xff1a;相信很多软件开发企业都有专职 QA。然而&#xff0c;这些专职人员能否发挥其本身价值&#xff1f;我们是否需要专职的QA&#xff1f;针对这些问题&#xff0c;本文作者提出了他的看法。 以下为文章原文&#xff1a; 这个文章必然是有争议的&#xff0c;我在我的…

【洛谷P1288】取数游戏II

取数游戏II 题目链接 显然&#xff0c;由于一定有一个0&#xff0c;我们可以求出从初始点到0的链的长度 若有一条链长为奇数&#xff0c;则先手可以每次取完一条边上所有的数&#xff0c; 后手只能取另一条边的数&#xff0c;先手必胜&#xff1b; 反之若没有奇数链&#xff0c…

22--删除字符串中的所有相邻重复项

文章目录1. 题目要求2.代码详情1. 题目要求 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保…

操作系统常考知识点总结(1)

1.什么是进程&#xff08;process&#xff09;和线程&#xff08;thread&#xff09;&#xff1f;有何区别&#xff1f; 1&#xff09;定义 进程是系统进行资源分配和调度的基本单位&#xff0c;线程是进程的一个实体&#xff0c;是cpu调度和分派的基本单位&#xff0c;是比进程…

jQuery上传插件Uploadify使用Demo、本地上传(ssm框架下)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 效果&#xff1a; 1. jar包导入&#xff1a; <!-- 文件上传组件 --><dependency><groupId>commons-fileupload</g…

P4313 文理分科 网络流

其实也就卡了卡常&#xff0c;&#xff0c;&#xff0c; 先考虑没有same_art和same_science 。 起点用art的流量连向每个点&#xff0c;该点再用science的流量连向终点&#xff0c;断开哪边相当于少了哪边收益。 先全部收益加起来&#xff0c;再减去最小割即可。 那有same这些情…

23--有效的括号

文章目录1.题目详情2.代码详情1.题目详情 给定一个只包括 ‘(’&#xff0c;’)’&#xff0c;’{’&#xff0c;’}’&#xff0c;’[’&#xff0c;’]’ 的字符串&#xff0c;判断字符串是否有效。有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号…

11 步教你选择最稳定的 MySQL 版本

MySQL开源数据库有多个重要分支&#xff0c;目前拥有的分支分别为&#xff1a;MySQL Cluster、MySQL 5.1、MySQL 5.5、MySQL 6.2。每个分支都有着同样的的MySQL数据库版本&#xff0c;分别为&#xff1a;Development版本、Alpha版本、Beta版本、RC版本和GA版本。Development版本…

【RabbitMQ】6、rabbitmq生产者的消息确认

2019独角兽企业重金招聘Python工程师标准>>> 通过Publisher Confirms and Returns机制&#xff0c;生产者可以判断消息是否发送到了exchange及queue&#xff0c;而通过消费者确认机制&#xff0c;Rabbitmq可以决定是否重发消息给消费者&#xff0c;以保证消息被处理…

泛型方法

java泛型方法简单介绍

修改jquery文件上传插件uploadify的英文为中文

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 效果&#xff1a; 对于这种样式的问题&#xff0c;我都是简单粗爆的解决&#xff1a; 找到uploadify的js文件&#xff0c;通常不是js&…

24--反转字符串中的单词 III

文章目录1.问题描述2. 代码详情1.问题描述 给定一个字符串&#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意&#xff1a;在字…