1. 程式人生 > >加密演算法之C#相容PHP中MD5加密

加密演算法之C#相容PHP中MD5加密

C#常用的MD5加密演算法:

public static string MD5(string password) {
   byte[] textBytes = System.Text.Encoding.Default.GetBytes(password);
   try {
      System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
      cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvider();
      byte[] hash = cryptHandler.ComputeHash (textBytes);
      string ret = "";
      foreach (byte a in hash) {
            ret += a.ToString ("x");
      }
      return ret ;
   }
   catch {
      throw;
   } 
} 

在介面對接的時候,用C#寫的MD5演算法得出的結果和PHP的MD5()得出的結果會不一樣。

我們修改C#加密方法,使其與PHP加密結果一樣

public static string MD5(string password) {
   byte[] textBytes = System.Text.Encoding.Default.GetBytes(password);
   try {
      System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
      cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvider();
      byte[] hash = cryptHandler.ComputeHash (textBytes);
      string ret = "";
      foreach (byte a in hash) {
         if (a<16)
            ret += "0" + a.ToString ("x");
         else
            ret += a.ToString ("x");
      }
      return ret ;
   }
   catch {
      throw;
   } 
} 


相關推薦

加密演算法C#相容PHPMD5加密

C#常用的MD5加密演算法: public static string MD5(string password) { byte[] textBytes = System.Text.Encoding.Default.GetBytes(password); try

C++ Leetcode初級演算法從排序陣列刪除重複項

給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 示例 1: 給定陣列 nums = [1,1,2], 函式應該返回新的

四種加密演算法SHA1原始碼-C++

SHA1.h檔案: //! SHA1 動態連結庫實現   H檔案 /*!   @author 朱孟斌   @e-mail  [email protected]   @version 1.0   @date 2011-03 

對稱加密演算法C#的踩坑日常

前言 有幸接觸了一下傳說中的對稱加密演算法3DES 感覺這些加密演算法與我的工作是想去甚遠的,一般沒什麼機會接觸這些東西 今次瞭解了一下3DES這個對稱演算法 原理算不上明白,算是踩了C#中的一些坑吧 C#中對於金鑰的處理比較奇怪,花費了一晚上一早上的時間才弄明白 期間偷窺了不少C#的原始碼 下面由我娓娓道來

Javamd5加密

com char common span edi case codec mdt imp 方法一、 public final static String md5(String s) { char hexDigits[] = {‘0‘,‘1‘,‘2‘,‘

php學習道:phpis_file和file_exist的差別,and推斷文件夾is_dir

文件 -m post 文件的 style 文件夾 原因 -a 文件名 在PHP中,is_file和file_isexist是有非常小差別的 1) is_file: $path ="/path/to/file/text.txt"; if(file_exis

大數據Hadoop Streaming編程實戰C++、Php、Python

大數據編程 PHP語言 Python編程 C語言的應用 Streaming框架允許任何程序語言實現的程序在HadoopMapReduce中使用,方便已有程序向Hadoop平臺移植。因此可以說對於hadoop的擴展性意義重大。接下來我們分別使用C++、Php、Python語言實現HadoopWo

加密技術:加密演算法AES在資訊保安的應用

隨著網路資訊科技的迅猛發展,網路資料加密的要求也日益提高,AES的應用首先體現在網路資訊保安領域中,以下四點就能很好的證明AES加密演算法的廣泛應用。 1. 無線 網路應用由於無線網路的通訊通道較有線網路更為開放,安全性的要求更高。目前,無線網路主要有兩個標準 :一是用於 WLAN的IEEE803.11協議

量化交易(2)——OKEX簽名驗證MD5加密的坑

hexdigest = hmac.new(payload, digestmod=hashlib.md5).hexdigest().upper() hexdigest = hashlib.md5(payload).hexdigest().upper()#OK支援的是這種

PHPAES加密解密類

我們在工作中會遇到各種加密,下面就是PHP中AES加密解密的類 <?php  class Aes {     /**      * var string&nbs

演算法刪除連結串列重複的結點

在一個排序的連結串列中,存在重複的結點,請刪除該連結串列中重複的結點,重複的結點不保留,返回連結串列頭指標。 例如,連結串列1->2->3->3->4->4->5 處理後為 1->2->5 解析:從頭遍歷整個連結串列,如果當前節點的值與下一個節點的

最全加密演算法對稱加密和非對稱加密

常見加密演算法 : DES(Data Encryption Standard):資料加密標準,速度較快,適用於加密大量資料的場合;  3DES(Triple DES):是基於DES,對一塊資料用三個不同的金鑰進行三次加密,強度更高; RC2和 RC4:用變長金鑰對大量資

oracleMD5加密

MD5加密函式 create or replace function md5(in_src in varchar2) return varchar2 is retval varchar2(128); begin retval := convert(in_src,'

演算法刪除排序陣列的重複項

題目:給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 解答:

演算法二叉樹序前序序列 或後序 求解樹

                這種題一般有二種形式,共同點是都已知中序序列。如果沒有中序序列,是無法唯一確定一棵樹的。<1>已知二叉樹的前序序列和中序序列,求解樹。1、確定樹的根節點。樹根是當前樹中所有元素在前序遍歷中最先出現的元素。2、求解樹的子樹。找出根節點在中序遍歷中的位置,根左邊的所有元

spring MD5加密

// spring 自帶的 DigestUtils 工具類可以進行 MD5 加密 //導包 import org.springframework.util.DigestUtils; //對密碼進行 md5 加密 public static voi

TEA加密演算法C/C++實現

TEA(Tiny Encryption Algorithm) 是一種簡單高效的加密演算法,以加密解密速度快,實現簡單著稱。演算法真的很簡單,TEA演算法每一次可以操作64-bit(8-byte),採用128-bit(16-byte)作為key,演算法採用迭代的形式,推

JAVAMD5加密MD5工具類)

工具類如下:import java.security.MessageDigest; /** * @Author:Starry * @Description: * @Date:Created in 9

C#幫助類:MD5加密

security ati encrypt md5 str int file gin code 1 /// <summary> 2 /// MD5加密 3 /// </summary> 4 public cla

Prim和Kruskal演算法C++實現

最近好長時間都困惑在這兩個演算法中,其實也不難,就是寫的時候比較費勁。現在總結一下。 首先說一下兩個演算法是幹嘛呢? 都是求解一個無向圖G的最小生成樹(minimum spanning tree),就是由該圖的那些連線G的所有頂點的邊構成的樹,其總值最低。這