1 <?php
2
3 class Sign
4 {
5 static $key = '###';
6
7 static function encrypt(array $data)
8 {
9 ksort($data);
10 $params = static::formatParams($data) . '&key=' . static::$key;
11
12 return strtoupper(md5($params));
13 }
14
15 static function formatParams($data)
16 {
17
18 $buff = "";
19 foreach ($data as $k => $v)
20 {
21 if($k != "sign" && isset($v)){
22 $buff .= $k . "=" . $v . "&";
23 }
24 }
25
26 return trim($buff, "&");
27 }
28
29 /**
30 * 获取指定长度的随机字符串
31 * @param int $num
32 * @return string
33 */
34 static function getRandom($num = 5)
35 {
36 $str = '1234567890abcdefghigklmnopqrstuvwxyz';
37 $str_length = strlen($str);
38
39 $return = '';
40 for ($i = 0; $i < $num; $i++) {
41 $return .= $str[rand(0, $str_length - 1)];
42 }
43
44 return $return;
45 }
46 }
47
48
49 //示例
50 $postData = [
51 'user' => '18888888888',
52 'password' => '*********',
53 'rand' => Sign::getRandom(),
54 ];
55
56 $sign = Sign::encrypt($postData);
57 $postData['sign'] = $sign;
58
59 //post提交$postData