首页 > 程序开发 > PHP > PHP关于远程传输数据,签名思路
2014
12-12

PHP关于远程传输数据,签名思路

<?php
// 按自己的需求追加的加密key
$encryption_key = 'uuling';

/**
 * 创建md5签名(可以指定自己规则),规则是:按参数名称a-z排序,遇到空值的参数不参加签名。
 */
function createSign($url) {

    $a_url = parse_url($url);
    parse_str($a_url['query'], $a_param);
    $signPars = "";
    ksort($a_param);

    foreach($a_param as $k => $v) {
        if("" != $v && "sign" != $k) {
            $signPars .= $k . "=" . $v . "&";
        }
    }

    $signPars .= "key=" . $encryption_key;
    $sign = strtolower(md5($signPars));

    return $sign;
}




/**
 * 是否为我自己的签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。
 * true:是
 * false:否
 */
function isMySign($url) {
    $a_url = parse_url($url);
    parse_str($a_url['query'], $a_param);
    $signPars = "";
    ksort($a_param);

    foreach($a_param as $k => $v) {
        if("sign" != $k && "" != $v) {
            $signPars .= $k . "=" . $v . "&";
        }
    }
    $signPars .= "key=" . $encryption_key;

    $sign = strtolower(md5($signPars));

    $mySign = strtolower($a_param['sign']);

    return $sign == $mySign;
}
最后编辑日期:
作者:uuling
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。