• PHP 识别 java 8位 des 加密和 解密方式


    代码及使用说明:

    <?php
    /**
    *PHP 识别 java 8位密钥的加密和解密方式
    *@desc 加密方式 通用
    */
    class DES {
        var $key;
        var $iv; //偏移量
    
    
        function DES($key) {
            //key长度8例如:1234abcd
            $this->key = $key;
        }
        //加密方式
        function encrypt($str) {
            $str = $this->pkcs5_pad($str);
            $encode = mcrypt_encrypt(MCRYPT_DES, $this->key, $str, MCRYPT_MODE_ECB);
            return bin2hex($encode);
        }
        //解密方式
        function decrypt($str) {
            $str = $this->hex2bin($str);
            $str = mcrypt_decrypt(MCRYPT_DES, $this->key, $str, MCRYPT_MODE_ECB);
            return $str;
        }
        //十六进制数据转换成二进制数据流
        function hex2bin($data) {
            $len = strlen($data);
            for($i=0;$i<$len;$i+=2) {
                $newdata .= pack("C",hexdec(substr($data,$i,2)));
            }
            return $newdata;
        }
    
        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)
        {
            $len = strlen($text);
            $mod = $len % 8;
            $pad = 8 - $mod;
            return $text.str_repeat(chr($pad),$pad);
        }
    
    }
    ?>

    使用方式:

    $key ='' 密钥
    $data = '123456'; 加密的字符串
    $Des = new Des($key);
    $encode = $Des->encrypt($data);//加密
    $decode = $Des->decrypt($encode);//解密
    echo $encode."<br/>";
    echo $decode."<br/>";
  • 相关阅读:
    Python 递归
    Python 面向过程编程
    Python 协程函数
    Python-第三方库requests详解
    Python 三元表达式
    linux copy
    centos 安装软件
    mysql 权限
    mysql 权限 备份
    android 开发
  • 原文地址:https://www.cnblogs.com/guangxiaoluo/p/3337022.html
Copyright © 2020-2023  润新知