Atitit aes 加密法php实现

Atitit aes 加密法php实现

 

 

<?php

$data="aaaaccc";

 $secret_key="abcdefgh";

//echo openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);

echo openssl_encrypt($data'AES-128-ECB'$secret_key,0"");

echo "\r\n";

echo openssl_decrypt("qjuIItb9e3IuYk0hi8ZN4g=="'AES-128-ECB'$secret_key,0"");

 

 

  • 常见的填充模式有: pkcs5、pkcs7、iso10126、ansix923、zero。
  • 加密模式有:DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。

 

常见参数$iv 加解密的向量,有些方法需要设置比如CBC

$method 加密方式

 

 switch($this->bit) {

           case 192:$this->cipher = MCRYPT_RIJNDAEL_192; break;

           case 256:$this->cipher = MCRYPT_RIJNDAEL_256; break;

           default: $this->cipher = MCRYPT_RIJNDAEL_128;

       } 

 

       switch($this->mode) {

           case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;

           case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;

           case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;

           case 'nofb':$this->mode = MCRYPT_MODE_NOFB; break;

           case 'cbc':$this->mode = MCRYPT_MODE_CBC; break;

           default: $this->mode = MCRYPT_MODE_CBC;

 

$options 数据格式选项(可选)【选项有:】

  • 0
  • OPENSSL_RAW_DATA=1
  • OPENSSL_ZERO_PADDING=2
  • OPENSSL_NO_PADDING=3

需要注意:如果$method为DES-ECB,则$iv无需填写

 

 

使用案例

posted @ 2019-12-27 03:44  attilaxAti  阅读(37)  评论(0编辑  收藏  举报