在日常开发中用到签名的几种写法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yqwwj001/article/details/82113662

第一种:

function getMd5(){

    $seqno = time();
    $apiid = 2;
    $ysid = 20170505011;
    $token =  urlencode('Token');
    $typeid = 1;
    $ip = urlencode('192.168.2.192');
    $clientid = 1;
    $sourceid = 6;
    $eipid = 1;
    $portid = 1103902;
    $isdes = 1;
    $return = urlencode('');
    $code = 0;
    $codemessage = urlencode('');
    $sendmessage = urlencode(json_encode([
        "SEND"      => '',
        "LISTID"    => '',
        "PAGEBASE"  => 10,
        "PAGEID"    =>  1,
        "PAGES"     =>  0,
        "ISDES"     =>  0,
        "ISSPECIAL" => '',
        "SWHERE"    => '',
        "SORDERBY"  => '',
        "IP"        => '192.168.2.192',
        "SKEYS"     => ''
    ], JSON_UNESCAPED_UNICODE));
    $params  = '';
    $params .= "SEQNO:{$seqno};";
    $params .= "APIID:{$apiid};";
    $params .= "YSID:{$ysid};";
    $params .= "TOKEN:{$token};";
    $params .= "TYPEID:{$typeid};";
    $params .= "IP:{$ip};";
    $params .= "CLIENTID:{$clientid};";
    $params .= "EIPID:{$eipid};";
    $params .= "SOURCEID:{$sourceid};";
    $params .= "PORTID:{$portid};";
    $params .= "ISDES:{$isdes};";
    $params .= "SEND:{$sendmessage};";
    $params .= "RETURN:{$return};";
    $params .= "CODE:{$code};";
    $params .= "CODEMESSAGE:{$codemessage};";
    return $params;
}

function getSign(){
    $seqno = time();
    $apiid = 2;
    $ysid = 20170505011;
    $token =  'Token';
    $typeid = 1;
    $ip = '192.168.2.192';
    $clientid = 1;
    $sourceid = 6;
    $eipid = 1;
    $portid = 1103902;
    $isdes = 1;
    $return = '';
    $code = 0;
    $codemessage = '';
    $md5 = strtoupper(MD5(getMd5()));
    $sendmessage = urlencode(json_encode([
        "SEND"      => '',
        "LISTID"    => '',
        "PAGEBASE"  => 10,
        "PAGEID"    =>  1,
        "PAGES"     =>  0,
        "ISDES"     =>  0,
        "ISSPECIAL" => '',
        "SWHERE"    => '',
        "SORDERBY"  => '',
        "IP"        => '192.168.2.192',
        "SKEYS"     => ''
    ], JSON_UNESCAPED_UNICODE));
    $params  = '';
    $params .= "SEQNO:{$seqno};";
    $params .= "APIID:{$apiid};";
    $params .= "YSID:{$ysid};";
    $params .= "TOKEN:{$token};";
    $params .= "TYPEID:{$typeid};";
    $params .= "IP:{$ip};";
    $params .= "CLIENTID:{$clientid};";
    $params .= "EIPID:{$eipid};";
    $params .= "SOURCEID:{$sourceid};";
    $params .= "PORTID:{$portid};";
    $params .= "ISDES:{$isdes};";
    $params .= "SEND:{$sendmessage};";
    $params .= "RETURN:{$return};";
    $params .= "CODE:{$code};";
    $params .= "CODEMESSAGE:{$codemessage};";
    $params .= "MD5:{$md5};";
    return $params;
}

第二种:

<?php
class AppUtil{
	/**
	 * 将参数数组签名
	 */
	public static function SignArray(array $array,$appkey){
		$array['key'] = $appkey;// 将key放到数组中一起进行排序和组装
		ksort($array);
		$blankStr = AppUtil::ToUrlParams($array);
		$sign = md5($blankStr);
		return $sign;
	}
	
	public static function ToUrlParams(array $array)
	{
		$buff = "";
		foreach ($array as $k => $v)
		{
			if($v != "" && !is_array($v)){
				$buff .= $k . "=" . $v . "&";
			}
		}
		
		$buff = trim($buff, "&");
		return $buff;
	}
	
/**
	 * 校验签名
	 * @param array 参数
	 * @param unknown_type appkey
	 */
	public static function ValidSign(array $array,$appkey){
		$sign = $array['sign'];
		unset($array['sign']);
		$array['key'] = $appkey;
		$mySign = AppUtil::SignArray($array, $appkey);
		return strtolower($sign) == strtolower($mySign);
	}
	
	
}
?>

猜你喜欢

转载自blog.csdn.net/yqwwj001/article/details/82113662