艾伦沃克哲 2022-05-25 22:22 采纳率: 33.3%
浏览 202
已结题

怎么用PHP实现 HMAC-SHA512 签名规则

怎么用PHP实现以下内容

sign的生成规则:sign=HMAC-SHA512(param1+value1+param2+value2+secret)
所有参数的param按字母升序排列,为避免排序问题,param只能使用字母及"",并且""的排序在“z”之前,“”的排 序""在“”之前,生成sign时,需先按param排序后,按上述方法加密,同时替换掉所有空格。

例子:

symbol:tchbtc
order_id:163560
time:1532859225860
secret:OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==

这些参数会被排序为:

order_id:163560
symbol:tchbtc
time:1532859225860
secret:OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==

按照以上顺序,将各参数连接组成最终的要进行签名计算的字符串如下:

order_id163560symboltchbtctime1532860279292OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==

  • 写回答

1条回答 默认 最新

  • 烦过梵蒂冈 2022-05-26 10:08
    关注
    
    $secret="OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==";
    
    $array=[
    'symbol'=>'tchbtc',
    'order_id'=>'163560',
    'time'=>'1532859225860'
    ];
    ksort($array);
    $str='';
    foreach($array as $key=>$v){
        $str.=$key.$v;
    }
    echo $str.$secret;
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月26日
  • 修改了问题 5月25日
  • 修改了问题 5月25日
  • 创建了问题 5月25日