📜  如何加密和解密PHP字符串?

📅  最后修改于: 2022-05-13 01:54:11.510000             🧑  作者: Mango

如何加密和解密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 。