<?php
class TripleDES{
/**
* 3des加密
* @param string $str 需要加密的字符串
* @param string $key 秘钥24位
* @return string
*/
public static function encrypt($str,$key){
$str = self::pkcs5_pad($str, 8);
if (strlen($str) % 8) {
$str = str_pad($str, strlen($str) + 8 - strlen($str) % 8, "\0");
}
$sign = openssl_encrypt($str, 'DES-EDE3', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, '');
return base64_encode($sign);
}
/**
* 3des解密
* @param string $str 需要加密的字符串
* @param string $key 秘钥24位
* @return string
*/
public static function decrypt($str,$key) {
$decrypted = openssl_decrypt(base64_decode($str), 'DES-EDE3', $key, OPENSSL_RAW_DATA,'');
return $decrypted;
}
//填充模式pkcs5padding
private static function pkcs5_pad($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
}
// echo TripleDES::encrypt('123456', '9oyKs7cVo1yYzkuisP9bhA=='); // 结果:ha3MLQ7hjao=
// echo TripleDES::decrypt('ha3MLQ7hjao=', '9oyKs7cVo1yYzkuisP9bhA=='); // 结果:ha3MLQ7hjao=
?>
版权属于:
Ezra
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)