php使用openssl扩展实现des加解密方法

php实现des加密算法一般都是基于mcrypt扩展的,但是mcrypt扩展从 PHP 7.1.0 开始废弃,自 PHP 7.2.0 起,会移到 PECL。推荐使用openssl扩展来实现des加密,openssl扩展使用openssl加密扩展包,封装了多个用于加密解密相关的PHP函数(基本包括常用的加解密算法),极大地方便了对数据的加密解密。

本文以ECB模式和CBC模式为例

ECB模式:

/**
 * des-ecb加密
 * @param string  $data 要被加密的数据
 * @param string  $key 加密密钥
 */
function des_ecb_encrypt($data, $key){
    return openssl_encrypt ($data, 'des-ecb', $key);
}

/**
 * des-ecb解密
 * @param string  $data 加密数据
 * @param string  $key 加密密钥
 */
function des_ecb_decrypt ($data, $key){
    return openssl_decrypt ($data, 'des-ecb', $key);
}

CBC模式:

/**
 * des-cbc加密
 * @param string  $data 要被加密的数据
 * @param string  $key 加密使用的key
 * @param string  $iv 初始向量
 */
function des_cbc_encrypt($data, $key, $iv){
    return openssl_encrypt ($data, 'des-cbc', $key, 0, $iv);
}

/**
 * des-cbc解密
 * @param string  $data 加密数据
 * @param string  $key 加密使用的key
 * @param string  $iv 初始向量
 */
function des_cbc_decrypt($data, $key, $iv){
    return openssl_decrypt ($data, 'des-cbc', $key, 0, $iv);
}
36nu 分享编程知识及经验

已有账号?立即登录