English | 简体中文 | 繁體中文
查询

openssl_encrypt()函数—用法及示例

「 对数据进行加密 」


函数名称:openssl_encrypt()

适用版本:PHP 5 >= 5.3.0, PHP 7

函数描述:openssl_encrypt() 函数用于对数据进行加密。

语法:string openssl_encrypt ( string $data , string $method , string $password [, int $options = 0 [, string $iv = "" [, string &$tag = NULL [, string $aad = "" [, int $tag_length = 16 ]]]]] )

参数说明:

  1. $data:需要加密的数据,可以是字符串或者是字节数组。
  2. $method:加密算法,可以是以下之一:
    • AES-128-CBC
    • AES-192-CBC
    • AES-256-CBC
    • AES-128-CTR
    • AES-192-CTR
    • AES-256-CTR
    • AES-128-GCM
    • AES-192-GCM
    • AES-256-GCM
  3. $password:加密密码,字符串类型。
  4. $options:可选参数,指定加密模式或填充方式。默认为0,表示使用PKCS7填充。
  5. $iv:可选参数,初始化向量,字符串类型。对于 CBC、CFB、OFB 和 STREAM 模式,必须提供一个初始化向量。对于 ECB 模式,不需要提供。
  6. $tag:可选参数,用于存储验证标签。只有在使用 GCM 模式时才需要提供。
  7. $aad:可选参数,附加的认证数据,字符串类型。只有在使用 GCM 模式时才需要提供。
  8. $tag_length:可选参数,用于指定生成的认证标签长度。只有在使用 GCM 模式时才需要提供。

返回值:加密后的数据,以字符串形式返回。

示例:

$data = "Hello, world!";
$method = "AES-256-CBC";
$password = "myPassword";
$options = 0;
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));

$encrypted = openssl_encrypt($data, $method, $password, $options, $iv);
echo "加密后的数据:".$encrypted."\n";

$decrypted = openssl_decrypt($encrypted, $method, $password, $options, $iv);
echo "解密后的数据:".$decrypted."\n";

输出结果:

加密后的数据:5B7n0m0qMF0nXbU2XnU0xY0oXf7n3V5l1G6q5u5n4y1=
解密后的数据:Hello, world!

注意事项:

  1. 在使用 CBC、CFB、OFB 和 STREAM 模式时,必须提供一个随机生成的初始化向量(IV)。
  2. 密码应该是足够强大的,以确保加密的安全性。
  3. 加密和解密时的参数(数据、加密算法、密码、选项和初始化向量)必须一致,否则解密将失败。
补充纠错
上一个函数: openssl_error_string()函数
下一个函数: openssl_digest()函数
热门PHP函数
分享链接