/**
* 对明文进行加密
* @param string $text 需要加密的明文
* @return string 加密后的密文
*/
public function encrypt($text, $appid) {
try {
$iv = substr($this->key, 0, 16);
$encrypted = openssl_encrypt($text,'AES-256-CBC',$this->key,OPENSSL_ZERO_PADDING,$iv);
return array(ErrorCode::$OK, $encrypted);
} catch (Exception $e) {
//print $e;
return array(ErrorCode::$EncryptAESError, null);
}
}
/**
* 对密文进行解密
* @param string $encrypted 需要解密的密文
* @return string 解密得到的明文
*/
public function decrypt($encrypted, $appid) {
try {
$iv = substr($this->key, 0, 16);
$decrypted = openssl_decrypt($encrypted,'AES-256-CBC',$this->key,OPENSSL_ZERO_PADDING,$iv);
} catch (Exception $e) {
return array(ErrorCode::$DecryptAESError, null);
}
}
以上就是我的代码实例,仅供大家参考。如果我们自己使用,建议是直接使用PHP7.1+openssl扩展,我这里也有一个封装好的类,可以参考,使用前需要先安装好openssl扩展。
class des {
/**
* 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);
}
/**
* 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);
}
}