1.   阿里云服务器1888元代金券领取
  2.   本网站所有源码包解压密码:www.youhutong.com
登录  帮助问答

PHP之DES加密解密算法类(ECB模式)(实例教程)

小川 技术文章

PHP中加密解密函数与DES加密解密的应用实例:

<?php
define('SMS_KEY', 'K0e5293b');
class DesUtil{

    public function encrypt($string, $key){
        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB), MCRYPT_RAND);
        $decrypted = mcrypt_encrypt(MCRYPT_DES, $key, $string, MCRYPT_MODE_ECB, $iv);
        $encode = base64_encode($decrypted);
        return $encode;
    }

    public function decrypt($string, $key){
        $decoded = base64_decode($string);
        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB), MCRYPT_RAND);
        $decrypted = mcrypt_decrypt(MCRYPT_DES, $key, $decoded, MCRYPT_MODE_ECB, $iv);
        return $this->trimEnd($decrypted);
    }
    
    private function trimEnd($text){
        $len = strlen($text);
        $c = $text[$len - 1];
        
        if(ord($c) == 0) return rtrim($text, $c);
        if(ord($c) < $len){
            for($i = $len - ord($c); $i < $len; $i++){
                if($text[$i] != $c){
                    return $text;
                }
            }
            return substr($text, 0, $len - ord($c));
        }
        return $text;
    }
}










// 加密需通过get方式在url中传递的参数
// 加密解密手机号
$des = new DesUtil();
$res = $des->encrypt('18955556666', SMS_KEY);
echo $res;
echo '<br/>';
echo $des->decrypt($res, SMS_KEY);
/*
    【输出如下:】

    anfCRSWbnVbYabIPBXmizw==
    18955556666
*/

?>


 浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!

转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/188.html

( 0 )个小伙伴在吐槽
    登录帐号  如果已经登录请刷新! 发表我的评论
    表情