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);
}