'1234567890', 'letter' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'string' => 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789', 'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' ); if (!isset($config[$type])) $type = 'string'; $string = $config[$type]; $code = ''; $strlen = strlen($string) - 1; for ($i = 0; $i < $length; $i++) { $code .= $string{mt_rand(0, $strlen)}; } if (!empty($convert)) { $code = ($convert > 0) ? strtoupper($code) : strtolower($code); } return $code; } /** * 验证sign * @param $userId * @param $ttl * @param $random * @param $sign * @return bool */ public static function validSign($userId,$ttl,$random,$sign){ $params = array('user_id'=> $userId, 'ttl'=> $ttl, 'random'=> $random); $makesign = self::getSignature($params); if($makesign == $sign) { return true; } return false; } public static function getSignature($params) { // 按数组键名 正序排序 ksort($params); $tem = array(); foreach ($params as $k => $v) { if ($k !== 'sign') { $tem[] = "$k=$v"; } } $sk = implode('&', $tem); return md5($sk); } }