您的位置 首页 php

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

在做接口的时候,我们需要对数据进行加密处理,本例使用的是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;
}
 

文章来源:智云一二三科技

文章标题:PHP AES/DES加解密方法,使用了base64和16进制加解密串

文章地址:https://www.zhihuclub.com/76687.shtml

关于作者: 智云科技

热门文章

网站地图