zoukankan      html  css  js  c++  java
  • PHP完整的AES加解密算法使用及例子(256位)

    依赖PHP自身的mcrypt扩展

    <?php
    class aes {
     
        // CRYPTO_CIPHER_BLOCK_SIZE 32
         
        private $_secret_key = 'default_secret_key';
         
        public function setKey($key) {
            $this->_secret_key = $key;
        }
         
        public function encode($data) {
            $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256,'',MCRYPT_MODE_CBC,'');
            $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
            mcrypt_generic_init($td,$this->_secret_key,$iv);
            $encrypted = mcrypt_generic($td,$data);
            mcrypt_generic_deinit($td);
             
            return $iv . $encrypted;
        }
         
        public function decode($data) {
            $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256,'',MCRYPT_MODE_CBC,'');
            $iv = mb_substr($data,0,32,'latin1');
            mcrypt_generic_init($td,$this->_secret_key,$iv);
            $data = mb_substr($data,32,mb_strlen($data,'latin1'),'latin1');
            $data = mdecrypt_generic($td,$data);
            mcrypt_generic_deinit($td);
            mcrypt_module_close($td);
             
            return trim($data);
        }
    }
     
    $aes = new aes();
    $aes->setKey('key');
     
    // 加密
    $string = $aes->encode('string');
    // 解密
    $aes->decode($string);
    ?>
  • 相关阅读:
    一、linux 挂起进程 nohup
    1.C#窗体和控件
    C#笔记——5.迭代器
    C#笔记——4.集合
    设计模式——3.观察者模式
    设计模式——2.策略模式
    Code基础——1.数据结构
    设计模式——1.模板方法
    C#笔记——3.泛型
    C#笔记——2.委托
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/4424199.html
Copyright © 2011-2022 走看看