PHP AES加解密算法

 

<?php
/**
 * Desc: Aes 加解密 php7.1+
 * Class: Aes
 * Package: app\common\lib
 * User: manzb
 * Date: 2018/10/18 17:30
 */

namespace app\common\lib;

class Aes
{
    private $iv = '';
    private $key = '';
    private $method = '';

    function __construct ()
    {
        $aes = config('admin.aes');
        /**
         * $aes 内容
            'aes' => [
                'key' => '309w4wb42104160d2g6806lv1ki60f98',//aes加密盐
                'method' => 'AES-256-CBC',//加密方式
                'hex' => '00000000000000000000000000000000',//生成iv参数用,貌似是为了安卓ios相互兼容取的这个值
            ],
可根据每个用户账号的不同设置不同的key字段
*/ $this->method = $aes['method']; $this->key = hash('sha256', $aes['key'], true); $this->iv = $this->hex2iv($aes['hex']); } /** * 加密 * @param $str * @return string */ public function encrypt ($str) { $encrypt = openssl_encrypt($str, $this->method, $this->key, OPENSSL_RAW_DATA, $this->iv); return base64_encode($encrypt); } /** * 解密 * @param $str * @return string */ public function decrypt ($str) { $decrypted = openssl_decrypt(base64_decode($str), $this->method, $this->key, OPENSSL_RAW_DATA, $this->iv); return $decrypted; } /** * 生成iv参数 * @param $hex * @return string */ private function hex2iv ($hex) { $iv = ''; for ($i = 0; $i < strlen($hex) - 1; $i += 2) { $iv .= chr(hexdec($hex[$i] . $hex[$i + 1])); } return $iv; } }

 

转载于:https://www.cnblogs.com/deverz/p/9814602.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值