2012-12-15 77 views
2

我正在使用payU信用卡系統。但我不管理。 payU告訴我必須創建hmac md5哈希值。如何在php中創建hmac md5?

我的密鑰是:3〜9#[X4^660 AK +?] H6%T 我想轉換爲HMAC_MD5哈希:8GEMISEPE6208617192012-12-15 15:58:476Deneme117Deneme202103NET112242103TRY2107Antalya7Antalya2TR8CCVISAMC2,3,7,10, 12

什麼是php代碼?

+11

關於「密鑰」的東西通常是你讓他們祕密;) – Niko

+1

我希望你會採取必要的措施來避免這一問題成爲您的應用程序的安全漏洞! – markus

+2

你到目前爲止嘗試過什麼嗎? – Touki

回答

16

您可以輕鬆地做到這一點使用hash_hmac()功能:

$input = 'foo'; 
$output = hash_hmac('md5', $input, $secretKey); 

其中$secretKey握着你的關鍵的字符串表示。

+0

,這沒有爲我工作。他們使用的公式不同於PHP hash_hmac轉換..我想知道爲什麼... – drukaman

1

這個PHP函數類的工作對我來說:

function hmac ($key, $data) 
       { 
       // RFC 2104 HMAC implementation for php. 
       // Creates an md5 HMAC. 
       // Eliminates the need to install mhash to compute a HMAC 
       // Hacked by Lance Rushing 
       $b = 64; // byte length for md5 
       if (strlen($key) > $b) { 
       $key = pack("H*",md5($key)); 
       } 
       $key = str_pad($key, $b, chr(0x00)); 
       $ipad = str_pad('', $b, chr(0x36)); 
       $opad = str_pad('', $b, chr(0x5c)); 
       $k_ipad = $key^$ipad ; 
       $k_opad = $key^$opad; 
       return md5($k_opad . pack("H*",md5($k_ipad . $data))); 
       } 


      $x_fp_hash = hmac($string1,$string2);