php aes加密解密类(兼容php5, php7)

  
 <代码> & lt; ? php/* *
  * @desc: php aes加密解密类
  * @author(李)& lt; [& lt; complet@163.com>]比;
  */类aes {//加密方式:1、mcrypt; 2, openssl默认1
  私人美元类型;//铸- 128 gost rijndael - 128 twofish cast - 256 loki97 rijndael - 192 saferplus blowfish-compat des rijndael醒来- 256蛇xtea rc2 tripledes arcfour河豚谜//AES-128-CBC  AES-128-CFB  AES-128-CFB1  AES-128-CFB8  AES-128-CTR  AES-128-ECB  AES-128-OFB  AES-128-XTS  AES-192-CBC  AES-192-CFB  AES-192-CFB1  AES-192-CFB8  AES-192-CTR  AES-192-ECB  AES-192-OFB  AES-256-CBC  AES-256-CFB  AES-256-CFB1  AES-256-CFB8  AES-256-CTR  AES-256-ECB  AES-256-OFB  AES-256-XTS  BF-CBC  BF-CFB  BF-ECB  BF-OFB  CAMELLIA-128-CBC  CAMELLIA-128-CFB  CAMELLIA-128-CFB1  CAMELLIA-128-CFB8  CAMELLIA-128-ECB  CAMELLIA-128-OFB  CAMELLIA-192-CBC  CAMELLIA-192-CFB  CAMELLIA-192-CFB1  CAMELLIA-192-CFB8  CAMELLIA-192-ECB  CAMELLIA-192-OFB  CAMELLIA-256-CBC  CAMELLIA-256-CFB  CAMELLIA-256-CFB1  CAMELLIA-256-CFB8  CAMELLIA-256-ECB  CAMELLIA-256-OFB  CAST5-CBC  CAST5-CFB  CAST5-ECB  CAST5-OFB  DES-CBC  DES-CFB  DES-CFB1  DES-CFB8  DES-ECB  DES-EDE  DES-EDE-CBC  DES-EDE-CFB  DES-EDE-OFB  DES-EDE3  DES-EDE3-CBC  DES-EDE3-CFB  DES-EDE3-CFB1  DES-EDE3-CFB8  DES-EDE3-OFB  DES-OFB  DESX-CBC  GOST 28147-89  IDEA-CBC  IDEA-CFB  IDEA-ECB  IDEA-OFB  RC2-40-CBC  RC2-64-CBC  RC2-CBC  RC2-CFB  RC2-ECB  RC2-OFB  RC4  RC4-40  RC4-HMAC-MD5  SEED-CBC  SEED-CFB  SEED-ECB  SEED-OFB  aes-128-cbc  aes-128-ccm  aes-128-cfb  aes-128-cfb1  aes-128-cfb8  aes-128-ctr  aes-128-ecb  aes-128-gcm  aes-128-ofb  aes-128-xts  aes-192-cbc  aes-192-ccm  aes-192-cfb  aes-192-cfb1  aes-192-cfb8  aes-192-ctr  aes-192-ecb  aes-192-gcm  aes-192-ofb  aes-256-cbc  aes-256-ccm  aes-256-cfb  aes-256-cfb1  aes-256-cfb8  aes-256-ctr  aes-256-ecb  aes-256-gcm  aes-256-ofb  aes-256-xts  bf-cbc  bf-cfb  bf-ecb  bf-ofb  camellia-128-cbc  camellia-128-cfb  camellia-128-cfb1  camellia-128-cfb8  camellia-128-ecb  camellia-128-ofb  camellia-192-cbc  camellia-192-cfb  camellia-192-cfb1  camellia-192-cfb8  camellia-192-ecb  camellia-192-ofb  camellia-256-cbc  camellia-256-cfb  camellia-256-cfb1  camellia-256-cfb8  camellia-256-ecb  camellia-256-ofb  cast5-cbc  cast5-cfb  cast5-ecb  cast5-ofb  des-cbc  des-cfb  des-cfb1  des-cfb8  des-ecb  des-ede  des-ede-cbc  des-ede-cfb  des-ede-ofb  des-ede3  des-ede3-cbc  des-ede3-cfb  des-ede3-cfb1  des-ede3-cfb8  des-ede3-ofb  des-ofb  desx-cbc  gost89  gost89-cnt  id-aes128-CCM  id-aes128-GCM  id-aes128-wrap  id-aes192-CCM  id-aes192-GCM  id-aes192-wrap  id-aes256-CCM  id-aes256-GCM  id-aes256-wrap  id-smime-alg-CMS3DESwrap  idea-cbc  idea-cfb  idea-ecb  idea-ofb  rc2-40-cbc  rc2-64-cbc  rc2-cbc  rc2-cfb  rc2-ecb  rc2-ofb  rc4  rc4-40  rc4-hmac-md5  seed-cbc  seed-cfb  seed-ecb  seed-ofb
  私人密码美元=皊eed-ofb”;//cbc cfb ctr央行ncfb nofb富含流b
  私人美元模式=傲鳌?
  私人四美元;//MCRYPT_RAND MCRYPT_DEV_RANDOM MCRYPT_DEV_URANDOM
  私人来源美元=MCRYPT_RAND;
  私人美元关键;
  美元的私人数据;/*
  构造函数
  @param关键密钥
  @param类型加密类型:1、mcrypt; 2, openssl
  */公共函数__construct(键,类型=1美元){
  $ this→键=$键;
  $ this→类型=$类型;
  }
  私有函数getiv () {
  密码=这→美元密码;
  模式=这→美元模式;
  $源=$ this→源;
  $大?mcrypt_get_iv_size(密码,美元模式);
  $ 4=mcrypt_create_iv(大小,源美元);
  返回四美元;
  }
  公共函数加密(元数据){
  类型=这样→美元类型;
  密码=这→美元密码;
  模式=这→美元模式;
  关键=美元这个→键;
  如果($ type==1) {
  4=这→美元getiv ();
  (td=mcrypt_module_open美元密码”、“,美元模式," ");
  mcrypt_generic_init (td,钥匙,美元$ iv);
  $加密=mcrypt_generic (td,美元数据);
  mcrypt_generic_deinit (td);
  mcrypt_module_close (td);
  (ret=base64_encode美元加密);
  其他}{
  (encryption_key=base64_decode美元关键);
  (len=openssl_cipher_iv_length美元密码);
  $ 4=openssl_random_pseudo_bytes (len美元);
  $=openssl_encrypt加密(数据、密码,美元encryption_key美元,0,4美元);
  (ret=base64_encode美元加密。“::”。(四)美元;
  }
  返回ret美元;
  }
  公共函数解密(元数据){
  类型=这样→美元类型;
  密码=这→美元密码;
  模式=这→美元模式;
  关键=美元这个→键;
  如果($ type==1) {
  4=这→美元getiv ();
  (td=mcrypt_module_open美元密码”、“,美元模式," ");
  mcrypt_generic_init (td,钥匙,美元$ iv);
  $解码=base64_decode(元数据);
  $ dencrypted=mdecrypt_generic (td,解码美元);
  mcrypt_generic_deinit (td);
  mcrypt_module_close (td);
  ret=dencrypted美元;
  其他}{
  (encryption_key=base64_decode美元关键);
  美元arr=爆炸(“::”base64_decode(数据)美元);
  encrypted_data=https://www.yisu.com/zixun/arr美元[0];
  4=arr美元[1];
  (ret=openssl_decrypt美元encrypted_data,密码美元,美元encryption_key, 0, 4美元);
  }
  返回ret美元;
  }
  }//$ key=坝⒂镒帜浮?//$ data=' https://www.yisu.com/zixun/你好世界”;//aes美元=new aes($键,2);//编码=美元aes→加密(元数据);//echo $ encode.PHP_EOL;//解码=aes→美元解密($编码);//echo $ decode.PHP_EOL; 

php aes加密解密类(兼容php5, php7)