//aes加密
function aescrypt($data,$secret_key,$iv,$options=OPENSSL_RAW_DATA,$method='AES-128-CBC'){
return openssl_encrypt($data,$method,$secret_key,$options,$iv);
}
*以上为疯转的加密算法 具体参数如果需要修改 请自行参照php手册查询openssl_encript函数的使用
以下为当时使用的另一些封装方法记录下 方便查找
//毫秒级时间戳
function msectime()
{
list($msec, $sec) = explode(' ', microtime());
return (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
}
//随机字符串 thinkcmf公共方法
function cmf_random_string($len = 6)
{
$chars = [
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
"3", "4", "5", "6", "7", "8", "9"
];
$charsLen = count($chars) - 1;
shuffle($chars); // 将数组打乱
$output = "";
for ($i = 0; $i < $len; $i++) {
$output .= $chars[mt_rand(0, $charsLen)];
}
return $output;
}
//发送数据
function _httpPost($url,$requestData,$headers){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,$requestData);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
//---------------------------------------------------------以下为解决该问题的参考资料博文------------------------------------------------------------------url:https://my.oschina.net/luoxiaojun1992/blog/883123
抄录下来避免删除
//ssl
function encryptNew($str, $key)
{
$zeroPack = pack('i*', 0);
$iv = str_repeat($zeroPack, 4);
return bin2hex(openssl_encrypt($str, 'AES-256-CBC', hex2bin(md5($key)), OPENSSL_RAW_DATA, $iv));
}
function decryptNew($encryptedStr, $key)
{
$zeroPack = pack('i*', 0);
$iv = str_repeat($zeroPack, 4);
return openssl_decrypt(hex2bin($encryptedStr), 'AES-256-CBC', hex2bin(md5($key)), OPENSSL_RAW_DATA, $iv);
}
//mcrypt 需要安装扩展类比较麻烦 所以没有使用
function encrypt($str, $key)
{
$zeroPack = pack('i*', 0);
$iv = str_repeat($zeroPack, 4);
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
$encryptedStr = mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
hex2bin(md5($key)),
pkcs5_pad($str, mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)),
MCRYPT_MODE_CBC,
$iv)
;
return bin2hex($encryptedStr);
}
function decrypt($encryptedStr, $key)
{
$zeroPack = pack('i*', 0);
$iv = str_repeat($zeroPack, 4);
return pkcs5_unpad(mcrypt_decrypt(
MCRYPT_RIJNDAEL_128,
hex2bin(md5($key)),
hex2bin($encryptedStr),
MCRYPT_MODE_CBC,
$iv
));
}
function pkcs5_pad ($text, $blocksize)
{
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text)
{
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text)) return false;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false;
return substr($text, 0, -1 * $pad);
}