PHP接口加密算法

 

 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

 

posted @ 2018-03-07 12:40  Mr_Echo  阅读(218)  评论(0编辑  收藏  举报