文章摘要:h5如何实现数据安全加密传输 h5如何安全加密交互
h5利用api接口实现数据加密传输,具体方法如下: function CurlPost($url, $para […]
h5利用api接口实现数据加密传输,具体方法如下:
function CurlPost($url, $param = null, $timeout = 10)
{
//初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url); // 设置请求的路径
curl_setopt($curl, CURLOPT_POST, 1); //设置POST提交
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //显示输出结果
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
//提交数据
if (is_array($param)) {
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param));
} else {
curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
}
//执行请求
$data = $data_str = curl_exec($curl);
//处理错误
if ($error = curl_error($curl)) {
$log_data = array(
'url' => $url,
'param' => $param,
'error' => '' . $error . '',
);
}
# 关闭CURL
curl_close($curl);
//json数据转换为数组
$data = json_decode($data, true);
//api返回数据解密
$api_des = config('api.mcrypt');
if ($api_des['is_open']) {
$data1 = Des::decode($data, $api_des['key'], $api_des['iv']);
$des_str = json_decode($data1, true);
}
if (!is_array($des_str)) {
$des_str = $data_str;
}
return $des_str;
}
如需要确保数据不出现泄露,还可以在数据传输中添加数据签名
//添加数据签名
function makeClientSign($param){
//数组排序
ksort($param)
//转换成json串
$json_str = json_encode($param);
//md5生成sign
$md5_result = md5($json_str);
return $md5_result;
}