php DES加密解密函数

180it 2021-11-05 PM 1248℃ 0条
/**
 * php DES解密函数
 * 
 * @param string $key 密钥
 * @param string $encrypted 加密字符串
 * @return string 
 */
function des_decode($key, $encrypted){
    $encrypted = base64_decode($encrypted);
    $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, ''); //使用MCRYPT_DES算法,cbc模式
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    $ks = mcrypt_enc_get_key_size($td);

    mcrypt_generic_init($td, $key, $key); //初始处理
    $decrypted = mdecrypt_generic($td, $encrypted); //解密
    
    mcrypt_generic_deinit($td); //结束
    mcrypt_module_close($td);
    return pkcs5_unpad($decrypted);
} 
/**
 * php DES加密函数
 * 
 * @param string $key 密钥
 * @param string $text 字符串
 * @return string 
 */
function des_encode($key, $text){
    $y = pkcs5_pad($text);
    $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, ''); //使用MCRYPT_DES算法,cbc模式
    $ks = mcrypt_enc_get_key_size($td);

    mcrypt_generic_init($td, $key, $key); //初始处理
    $encrypted = mcrypt_generic($td, $y); //解密
    mcrypt_generic_deinit($td); //结束
    mcrypt_module_close($td);
    return base64_encode($encrypted);
} 
function pkcs5_unpad($text){
    $pad = ord($text[strlen($text)-1]);
    if ($pad > strlen($text)) return $text;
    if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return $text;
    return substr($text, 0, -1 * $pad);
} 
function pkcs5_pad($text, $block = 8){
    $pad = $block - (strlen($text) % $block);
    return $text . str_repeat(chr($pad), $pad);
} 
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php DES加密解密函数