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