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.pswp.cn/news/451797.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451797.shtml
英文地址,請注明出處:http://en.pswp.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;在字…