如何加密和解密PHP字符串?
在PHP,可以使用称为 OpenSSL函数的加密扩展之一来对字符串进行加密和解密。
openssl_encrypt()函数: openssl_encrypt()函数用于加密数据。
句法:
string openssl_encrypt( string $data, string $method, string $key,
$options = 0, string $iv, string $tag= NULL,
string $aad, int $tag_length = 16 )
参数:
- $data:保存需要加密的字符串或数据。
- $method: cipher 方法采用 openssl_get_cipher_methods()函数。
- $key:它保存加密密钥。
- $options:它保存标志 OPENSSL_RAW_DATA 和 OPENSSL_ZERO_PADDING 的按位分离。
- $iv:它保存不为 NULL 的初始化向量。
- $tag:它持有使用AEAD密码模式(GCM或CCM)时通过引用传递的认证标签。
- $aad:它保存额外的身份验证数据。
- $tag_length:保存认证标签的长度。对于 GCM 模式,认证标签的长度在 4 到 16 之间。
返回值:成功时返回加密字符串,失败时返回 FALSE。
openssl_decrypt()函数openssl_decrypt()函数用于解密数据。
句法:
string openssl_decrypt( string $data, string $method, string $key,
int $options = 0, string $iv, string $tag, string $aad)
参数:
- $data:保存需要加密的字符串或数据。
- $method: cipher 方法采用 openssl_get_cipher_methods()函数。
- $key:它保存加密密钥。
- $options:它保存标志 OPENSSL_RAW_DATA 和 OPENSSL_ZERO_PADDING 的按位分离。
- $iv:它保存不为 NULL 的初始化向量。
- $tag:它使用 AEAD 密码模式(GCM 或 CCM)保存认证标签。当身份验证失败时 openssl_decrypt() 返回 FALSE。
- $aad:它保存额外的身份验证数据。
返回值:成功时返回解密后的字符串,失败时返回 FALSE。
方法:首先声明一个字符串,并将其存储到变量和使用openssl_encrypt()函数来加密给定的字符串和使用openssl_decrypt()函数来descrypt给定的字符串。
示例 1:本示例说明了字符串的加密和解密。
输出:
Original String: Welcome to GeeksforGeeks
Encrypted String: hwB1K5NkfcIzkLTWQeQfHLNg5FlyX3PNUA==
Decrypted String: Welcome to GeeksforGeeks
例 2:下面的例子说明了字符串的加密和解密。这里要被加密的字符串和解密的字符串将是相同的,但加密的字符串被随机地分别改变。
输出:
Original String: Welcome to GeeksforGeeks
Encrypted String: hwB1K5NkfcIzkLTWQeQfHLNg5FlyX3PNUA==
Decrypted String: Welcome to GeeksforGeeks
参考:
- https://www. PHP.net/manual/en/函数.openssl-encrypt。 PHP
- https://www. PHP.net/manual/en/函数.openssl-decrypt。 PHP
PHP是一种专门为 Web 开发设计的服务器端脚本语言。您可以按照此PHP教程和PHP示例从头开始学习PHP 。