淘宝JSSDK中Hmac-md5签名C#生成方法

集成淘宝JSSDK过程中,需生成Hmac-md5的签名,而淘宝只提供了php的写法,代码如下:

 

  
  
  
  
  1. <?php 
  2. $app_key = '12008678';/*填写appkey */ 
  3. $secret='';/*填入Appsecret'*/ 
  4. $timetimestamp=time()."000"; 
  5. $message = $secret.'app_key'.$app_key.'timestamp'.$timestamp.$secret; 
  6. $mysign=strtoupper(hash_hmac("md5",$message,$secret)); 
  7. setcookie("timestamp",$timestamp); 
  8. setcookie("sign",$mysign); 
  9. ?> 

本人对php不熟,以上代码中的函数hash_hmac也不清楚是不是php系统自带的函数,一条语句搞定,很简洁,很强悍,C#系统类库中似乎没有(或者是我没找到?)类似以上函数hash_hmac,直接传递key(密钥)和source(消息数据)返回String的方法,需自已写个函数,代码如下:

 

  
  
  
  
  1. string ComputeHash(string source, string key) 
  2.        { 
  3.            HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key)); 
  4.            byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source)); 
  5.            StringBuilder sb = new StringBuilder(); 
  6.  
  7.            for (int i = 0; i < inArray.Length; i++) 
  8.            { 
  9.                sb.Append(inArray[i].ToString("X2")); 
  10.            } 
  11.             
  12.            hmacmd.Clear(); 
  13.             
  14.            return sb.ToString(); 
  15.        }
  16.  

 

HMACMD5类引用于命令空间System.Security.Cryptography,具体可参考MSDN:

http://msdn.microsoft.com/en-us/library/system.security.cryptography.hmacmd5.aspx

你可能感兴趣的:(淘宝,jssdk,HMACMD5,hash_hmac)