分享编程~
 

PHP中DES对称加密openssl特殊字符加密解密失败问题解决

PHP中对称加密openssl里边加密函数openssl_encrypt()和解密函数openssl_decrypt()进行特殊字符时会导致加密解密失败,可以通过特殊字符处理进行解决。

天天特卖抢好货

PHP中DES对称加密openssl里边加密函数openssl_encrypt()和解密函数openssl_decrypt()进行特殊字符时会导致加密解密失败,可以通过特殊字符替换和补位解决。

简单示例如下:

/**
 * 字符串加密、解密示例
 */
// 加密密钥
$key = 'abcabc';

/** 加密 **/
$str = '越加网+_/=yj21.com';
$enStr = encrypt($str, $key);
echo $enStr; 
//输出:kjmOeyY0q9YN9I4iBlykWHZHYoy6_gEX541-iDb-3Lo


echo '<br>';

/** 解密 **/
$deStr = decrypt($enStr, $key);
echo $deStr; 
//输出:越加网+_/=yj21.com

封装的加密解密函数:

/**
 * Notes: 字符串-加密
 * Desc: 兼容字符串特殊字符加密
 */
function encrypt($string, $key){
    $string = base64_encode(openssl_encrypt($string, 'AES-128-ECB', $key, OPENSSL_RAW_DATA ));
    return rtrim(strtr($string, '+/', '-_'), '=');
}

/**
 * Notes: 字符串-解密
 * Desc: 兼容字符串特殊字符解密
 */
function decrypt($string, $key){
    $string = str_pad(strtr($string, '-_', '+/'), strlen($string) % 4, '=', STR_PAD_RIGHT);
    return openssl_decrypt(base64_decode($string), 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
}


上一篇:git提交文件命令屏蔽指定文件和文件夹下一篇:PHP根据图片路径转换成二进制和base64以及互相转换
赞(4) 踩(0)
您说多少就多少,您的支持是我最大的动力
赏金
微 信
赏金
支付宝
本文连接: https://www.yj521.com/article/154.html
版权声明: 本文为原创文章,版权归《越加网》所有,分享转载请注明出处!