<返回更多

PHP AES/DES加解密方法,使用了base64和16进制加解密串

2019-08-07    
加入收藏

在做接口的时候,我们需要对数据进行加密处理,本例使用的是AES/DES加密解密方法,

因为在加密解密的过程中,加密的串是乱码的,所以加乱码的串进行了base64编码或者转为16进制

同理解密的过程正好相反,具体方法如下:

//AES加密

function mc_encrypt($data, $mc_key,$method = 'AES-256-ECB',$basecode="base64",$iv="") {
 $options = OPENSSL_RAW_DATA; //数据格式选项(可选)
 $encode = openssl_encrypt($data, $method, $mc_key, $options,$iv);
 if($basecode == "hex"){ 
 //hex加密
 $encode = String2Hex($encode);
 }else{
 //base64加密
 $encode = base64_encode($encode);
 }
 return $encode;
}

//AES解密

function mc_decrypt($result, $mc_key,$method = 'AES-256-ECB',$basecode="base64",$iv="") {
 $options = OPENSSL_RAW_DATA; //数据格式选项(可选)
 if($basecode == "hex"){
 //hex解密
 $result = Hex2String($result);
 }else{
 //base64解密
 $result = base64_decode($result);
 }
 $decrypted = openssl_decrypt($result, $method, $mc_key, $options,$iv);
 return $decrypted;
}

//16进制串转为字符串

function Hex2String($hex) {
 $string = '';
 for ($i = 0; $i < strlen($hex) - 1; $i+=2) {
 $string .= chr(hexdec($hex[$i] . $hex[$i + 1]));
 }
 return $string;
}

//字符串转为16进制串

function String2Hex($string) {
 $hex = '';
 for ($i = 0; $i < strlen($string); $i++) {
 $tmp = dechex(ord($string[$i]));
 if (strlen($tmp) == 1) {
 $tmp = "0" . $tmp;
 }
 $hex .= $tmp;
 }
 return $hex;
}
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>