复制代码代码如下所示:
< PHP

类aesmcrypt {

公共$ IV = null;
公共$键= null;
公共$位= 128;
私人密码;

公共功能__construct(合位,美元美元美元的关键,四模式){
如果(空($位)| |空($键)空($ IV)| | | |空(合模))
返回null;

$;
$此键= $键;
美元;
$ $ >模式= $模式;

开关($ - *位){
案例192:美元->密码= mcrypt_rijndael_192;打破;
案例256:美元->密码= mcrypt_rijndael_256;打破;
默认值:美元->密码= mcrypt_rijndael_128;
}

开关($ - >模式){
case'ecb:美元->模式= mcrypt_mode_ecb;打破;
case'cfb:美元->模式= mcrypt_mode_cfb;打破;
case'ofb:美元->模式= mcrypt_mode_ofb;打破;
case'nofb:美元->模式= mcrypt_mode_nofb;打破;
默认值:美元->模式= mcrypt_mode_cbc;
}
}

公共函数加密($ data){
$data = base64_encode(mcrypt_encrypt(美元->密码,美元->关键数据,美元,美元->模式->四美元));
返回$数据;
}

公共函数解密($ data){
$data = mcrypt_decrypt(美元->密码,美元->键,base64_decode($数据),美元->模式->四美元);
$data = RTrim(RTrim($数据), X00 .. x1F );
返回$数据;
}

}

使用方法
AES =新aesmcrypt美元($位= 128,= 'abcdef1234567890美元关键,IV = '0987654321fedcba美元,美元模式= 'cbc);
C =美元美元->加密(AES 'haowei。我);
var_dump($ AES ->解密($ C));