php aes加解密,mcrypt_encrypt 和openssl_encrypt

php7.1以下版本使用

  /*
     * mcrypt_encrypt 加密
     * php7.1开始被丢弃 可以使用openssl_encrypt
     * */
    function aes_encrypt($content){
        $privateKey = "abcdef1234567890";
        $iv = "helloworld123456";
        $content = $this->pkcs7_pad($content); //支持openssl_decrypt 解密,
        $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$privateKey,$content,MCRYPT_MODE_CBC,$iv);
        $based_encrypted = base64_encode($encrypted);
        return $based_encrypted;
    }
/* * mcrypt_encrypt 解密 * */ function aes_decrypt($content){ $privateKey = "abcdef1234567890"; $iv = "helloworld123456"; $content = base64_decode($content); $encrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$privateKey,$content,MCRYPT_MODE_CBC,$iv); return $encrypted; } function pkcs7_pad($str){ $len = mb_strlen($str, '8bit'); $c = 16 - ($len % 16); $str .= str_repeat(chr($c), $c); return $str; }

  

php7.1开始被丢弃 可以使用openssl_encrypt
  /**
     * 解密字符串
     * @param string $data 字符串
     * @param string $key 加密key
     * @return string
     */
    function decryptWithOpenssl($data,$key,$iv){
        return openssl_decrypt(base64_decode($data),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);
    }

    /**
     * 加密字符串
     * 参考网站: https://segmentfault.com/q/1010000009624263
     * @param string $data 字符串
     * @param string $key 加密key
     * @return string
     */
    function encryptWithOpenssl($data,$key,$iv){
        return base64_encode(openssl_encrypt($data,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv));
    }

  

使用方法

    header("Content-type:text/html; charset=utf-8");
        $privateKey = "abcdef1234567890";
        $iv = "helloworld123456";
        echo "<pre>";
        $content = '章节内容加密测试121212ksjflkdjslfsdjfljs章节内容测试end';
        $aesencrypt = aes_encrypt($content);
        echo "aes_encrypt加密:".($aesencrypt);
        echo "<br/>";
        $encrypt_openssl = aes_decrypt($aesencrypt);
        echo "aes_decrypt解密:".($encrypt_openssl);
        echo "<br/>";
        $encrypt_openssl = decryptWithOpenssl($aesencrypt,$privateKey,$iv);
        echo "openssl_encrypt解密:".($encrypt_openssl);
        echo "<br/>";


        $encrypt_openssl = encryptWithOpenssl($content,$privateKey,$iv);
        echo "openssl_encrypt加密:".($encrypt_openssl);
        echo "<br/>";
        $decrypt_openssl =decryptWithOpenssl($encrypt_openssl,$privateKey,$iv);
        echo "openssl_encrypt解密:".($decrypt_openssl);
        echo "<br/>";
        $decrypt_openssl = aes_decrypt($encrypt_openssl);
        echo "aes_decrypt解密:".($decrypt_openssl);
        echo "<br/>";

  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值