运行截图:
首先要修改php.ini,这个php_openssl.dll要放开
构造工具类:
- <?php
-
-
- namespace vendor;
-
-
- class EncryptionTool{
-
- public static function enAES($originTxt, $key): string{
-
- return base64_encode(openssl_encrypt($originTxt, 'AES-128-ECB',$key, OPENSSL_RAW_DATA));
- }
-
- public static function deAES($originTxt, $key): string{
-
- $data = base64_decode($originTxt);
- return openssl_decrypt($data,'AES-128-ECB',$key, OPENSSL_RAW_DATA);
- }
-
- }
这里要注意的地方。
AES有很多种加密方式如ECB、CBC、CTR、OFB、CFB
数据块有128位、192位、256位
填充方式有pkcs5padding、pkcs7padding、zeropadding、iso10126、ansix923、no padding。
php调用的openssl默认是采用pkcs7padding
调用代码如下:
- $hello = "Hello World";
-
- echo "原始数据: " . $hello . "<br/>";
- $data = EncryptionTool::enAES($hello, "1234567891234567");
- echo "加密后: " . $data . "<br/>";
- echo "解密后: " . EncryptionTool::deAES($data, "1234567891234567") . "<br/>";