PHP AES 加密和解密
作者:BrightSoul
时间:2024-02-28
浏览:0
PHP有一个使用php的AES方法加密和解密字符串的内置扩展。函数openssl_encrypt()用于加密字符串,openssl_decrypt()用于解密字符串。在PHP中使用OpenSSL函数加密和解密字符串openssl_encrypt()和openssl_decrypt()采用一组强制和可选参数,有关参数的信息如下表所示:范围描述data纯文本/字符串cipher_alGo密码方法,在我们的例子中,AESpassphrase如果密码短语短于限制,则会用空字符静默填充,如果长则截断。options
PHP 有一个使用 php 的 AES 方法加密和解密字符串的内置扩展。
函数 openssl_encrypt() 用于加密字符串,openssl_decrypt() 用于解密字符串。
在 PHP 中使用 Open SSL 函数加密和解密字符串
openssl_encrypt() 和 openssl_decrypt() 采用一组强制和可选参数,有关参数的信息如下表所示:
| 范围 | 描述 |
|---|---|
data |
纯文本/字符串 |
cipher_alGo |
密码方法,在我们的例子中,AES |
passphrase |
如果密码短语短于限制,则会用空字符静默填充,如果长则截断。 |
options |
标志的按位分离。OPENSSL_RAW_DATA 和 OPENSSL_ZERO_PADDING。 |
iv |
初始化向量,非空 |
tag |
身份验证标签 CGM 或 CCM |
aad |
额外的身份验证数据。 |
tag_length |
身份验证标签的长度在 4 到 16 之间 |
openssl_encrypt() 采用上述所有参数,并在使用 openssl_decrypt() 时排除 aad 和 tag_length。
//Encryption
$original_string = "Hello! This is jiyik.com";// Plain text/String
$cipher_algo = "AES-128-CTR"; //The cipher method, in our case, AES
$iv_length = openssl_cipher_iv_length($cipher_algo); //The length of the initialization vector
$option = 0; //Bitwise disjunction of flags
$encrypt_iv = '8746376827619797'; //Initialization vector, non-null
$encrypt_key = "jiyik!"; // The encryption key
// Use openssl_encrypt() encrypt the given string
$encrypted_string = openssl_encrypt($original_string, $cipher_algo,
$encrypt_key, $option, $encrypt_iv);
//Decryption
$decrypt_iv = '8746376827619797'; //Initialization vector, non-null
$decrypt_key = "jiyik!"; // The encryption key
// Use openssl_decrypt() to decrypt the string
$decrypted_string=openssl_decrypt ($encrypted_string, $cipher_algo,
$decrypt_key, $option, $decrypt_iv);
//Display Strings
echo "The Original String is:
" . $original_string. "
" ;
echo "The Encrypted String is:
" . $encrypted_string . "
";
echo "The Decrypted String is:
" . $decrypted_string;
?>
上面的代码首先使用 AES 方法对字符串进行加密,然后对其进行解密。
输出:
The Original String is:
Hello! This is jiyik.com
The Encrypted String is:
JF1iHtW4I9qK8q9OwCL9Yh1ejtZofci5
The Decrypted String is:
Hello! This is jiyik.com
AES 根据方法和位数具有不同的 cipher_algorithams,例如 aes-128-cbc、aes-192-cfb 或 aes-256-cbc。
此处查看 AES 加密和其他方法的所有选项。
作者最新文章
索尼 Xperia 1 VIII / VII / VI 等手机获 Android 17 更新,新增桌面模式等功能
2026-09-08 16:44
加拿大留学监护声明书(IMM 5646)双页签署与公证核对指南
2026-09-03 15:02
在线PDF转图片教程:一键生成高清图片包
2026-09-03 12:04
Creo零基础入门:新建零件与第一次拉伸建模完整指南
2026-09-03 06:02
扫描件PDF转Word的在线操作步骤与编辑可行性判断
2026-09-02 18:39
上一篇:
PHP 中获取来源页面信息
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































