Files

38 lines
1.1 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | YwxApp [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: ywxapp<admin@ywxapp.cn>
// +----------------------------------------------------------------------
// server/utils/SignUtil.php
namespace ywxapp\utils;
/**
* SignUtil 类
*
* @author ywxapp <admin@ywxapp.cn>
*/
class SignUtil
{
public static function generateSign(array $params, string $secret): string
{
unset($params['sign']);
ksort($params);
$signString = urldecode(http_build_query($params, '', '&'));
return hash_hmac('sha256', $signString, $secret);
}
public static function verifySign(array $params, string $secret): bool
{
if (!isset($params['sign'])) return false;
$sign = $params['sign'];
$expected = self::generateSign($params, $secret);
return strtolower($sign) === strtolower($expected);
}
}