<?php namespace Api; /** * 签名相关的操作类 * * @name Sign * @package Library/Api * @copyright yoho.inc * @version 1.0 (2015-9-30 16:24:36) * @author fei.hong <fei.hong@yoho.cn> */ class Sign { /** * 排序参数 * * @param array $package 需要签名的数据 * @return array */ public static function packageSort(array $package) { ksort($package); reset($package); return $package; } /** * 生成签名 * * @param array $package 需要签名的数据 * @return string */ public static function makeSign(array $package) { $packageList = array(); foreach ($package as $key => $val) { $packageList[] = trim($key . '=' . $val); } return strtolower(md5(implode('&', $packageList))); } /** * 获取签名 * * @param array $package 需要签名的数据 * @return string */ public static function getSign(array $package) { $package = self::packageSort($package); return self::makeSign($package); } /** * 验证签名 * * @param array $package 需要签名的数据 * @param string $sign 签名信息 * @return bool (true:签名正确, false:签名错误) */ public static function verifySign($package, $sign) { $mySign = self::getSign($package); if ($mySign === $sign) { return true; } else { return false; } } }