PHP签名生成的通用步骤

2021年11月21日 阅读数:4
这篇文章主要向大家介绍PHP签名生成的通用步骤,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

签名生成的通用步骤以下php

第一步,设全部发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。bash

特别注意如下重要规则:ide

参数名ASCII码从小到大排序(字典序);
若是参数的值为空不参与签名;
参数名区分大小写;
sign参数不参与签名
files[]不参与签名

第二步,在stringA最后拼接上key获得stringSignTemp字符串,并对stringSignTemp进行MD5运算,获得sign值signValue。ui

签名示例:

第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序以下:
		stringA="parterId=1&nonceStr=sdfdsfdsfsdfsdfsdfsdfsdfsf&uid=3";
	第二步:拼接API密钥:
		stringSignTemp=stringA+"&key=19200625"
	第三步:加密
		sign=MD5(stringSignTemp)

###签名方法加密

<?php
function signCheck(array $info): string
{
	   $key='19200625';
		ksort($info);
		$string = '';
		 foreach ($info as $key => $v) {
				if (empty($val) || $key == 'sign') {
					continue;
				}
				$string .= $key . '=' . $v . '&';
   		 }
		if(get_magic_quotes_gpc()){
				$string = stripslashes($string);
		 }
		$token = md5($string .'key='.$key);
		return $token;
}