PHP 如何加密或解密字符串

PHP 如何加密或解密字符串

在PHP编程语言中,使用OpenSSL函数来实现字符串数据的加密和解密。我们可以通过openssl_encrypt(data)和openssl_decrypt(data)来对值进行加密和解密。我们可以使用PHP语言的单个方法或两种方法。

1. openssl_encrypt(data) 方法

加密函数用于对输入值进行编码,具有许多功能。我们可以以复杂和安全的编码格式获取输出值。

语法:

使用以下语法来使用PHP语言加密字符串数据。

string openssl_encrypt( string data_input, stringmethod_input, 
             string key_input,options = 0, 
              string iv_input, stringtag = NULL,
                                   string adv_input, inttag_length = 12  )

参数

现在,我们可以讨论语法参数,以便更好地理解。

  • $data_input: 它包含了需要在程序中加密的输入字符串或给定数据。
  • $method_input: 密码方法包含在使用“openssl_get_cipher_methods()”函数的encrypt函数内部。
  • $key_input: 它包含了加密功能所需的加密密钥。
  • $options: 它包含了标志的位或运算。标志值表示“OPENSSL_RAW_DATA”和“OPENSSL_ZERO_PADDING”数据。
  • $iv_input: 它包含了初始化向量数据。此数据不应为NULL。
  • $tag: 它包含了身份验证标签。在使用AEAD密码模式时,它用于传递引用。密码模式例如GCM或CCM。
  • $adv_input: 它包含了加密函数的附加身份验证输入值。
  • $tag_length: 它包括身份验证输入标签的长度。对于GCM模式,身份验证标签的长度范围是4到16。

返回值

  • 成功时,输出值将返回加密的字符串值。
  • 失败时,会显示FALSE输出值。

2. openssl_decrypt(data)方法

解密函数用于解码具有许多功能的输入值。我们可以从编码格式中得到原始格式的输出值。

语法

以下语法用于使用php语言解密字符串数据。

string openssl_decrypt( string data_input, stringmethod_input, 
                 string key_input,options = 0, 
                  string iv_input, stringtag = NULL, string $adv_input)

参数

现在,我们可以讨论语法参数以更好地理解。

  • $data_input: 它包含在程序中需要解密的输入字符串或给定数据。
  • $method_input: 加密方法包含在解密函数中,使用”openssl_get_cipher_methods()”函数。
  • $key_input: 它包含用于功能的解密密钥。
  • $options: 它包含标志的位或运算结果。标志值表示”OPENSSL_RAW_DATA”和”OPENSSL_ZERO_PADDING”数据。
  • $iv_input: 它包含初始化向量数据。该数据不应为NULL。
  • $tag: 它包含认证标签。在使用AEAD密码模式时,用于传递引用。密码模式如GCM或CCM。
  • $adv_input: 它包含解密函数的额外认证输入值。

返回值:

  • 成功时,输出值返回解密后的字符串值。
  • 失败时,返回值为FALSE。

示例:

以下示例演示了使用php语言加密和解密字符串数据。

示例1:

以下示例演示了使用php语言加密字符串数据。

我们需要输入字符串、密码方法和加密密钥值来加密字符串值。

<?php
// Original string value works to encrypt the value
original_string = "Welcome to JavaTpoint learners \n";
// Print the original input string
echo "Original String: " .original_string. "<br>";
// Store the cipher method for encrypting
ciphering_value = "AES-128-CTR";
// Store the encryption keyencryption_key = "JavaTpoint";
// Use openssl_encrypt() function for encrypting the data
encryption_value   = openssl_encrypt(original_string, ciphering_value,encryption_key);                  
// Display the encrypted string
echo "<br> <br> Encrypted Input String: " . $encryption_value  . "\n";
?>

输出

以下输出显示使用php语言对一串数据进行加密。

PHP 如何加密或解密字符串

示例2

以下示例展示了使用PHP语言对字符串数据进行基本解密。我们需要输入字符串、加密方法和加密密钥值来加密字符串值。加密后的值作为解密数据的输入。

<?php
// Original string value works to encrypt the value
original_string = "Welcome to JavaTpoint learners \n";
// Print the original input string
echo "Original String: " .original_string;
// Store the cipher method 
ciphering_value = "AES-128-CTR"; 
// Store the encryption keyencryption_key = "JavaTpoint";
// Use openssl_encrypt() function 
encryption_value = openssl_encrypt(original_string, ciphering_value,encryption_key); 
// Display the encrypted input string data
echo "<br> <br> Encrypted Input String: " . encryption_value  . "\n";decryption_key = "JavaTpoint";
// Use openssl_decrypt() function to decrypt the data
decryption_value = openssl_decrypt(encryption_value, ciphering_value,decryption_key); 
// Display the decrypted string as an original data
echo "<br> <br> Decrypted Input String: " .$decryption_value. "\n";
?>

输出

以下输出显示使用php语言加密数据字符串。

Original String: Welcome to JavaTpoint learners

Encrypted Input String: 47Qv+Tl92fM9MQyevgN3tyMA92KyNamCfx1ptqJ6R8Y=

Decrypted Input String: Welcome to JavaTpoint learners

示例3

下面的示例展示了使用php语言对字符串数据进行基本解密。我们可以在加密和解密函数中使用多个字符串函数。

<?php
original_string = "Welcome to JavaTpoint advance learner \n";
// Print the original input string
echo "Original String: " .original_string;
// Store the cipher method 
ciphering_value = "AES-128-CTR";iv_length = openssl_cipher_iv_length(ciphering_value);options = 0;
encryption_iv_value = '11121';
// Store the encryption keyencryption_key = "JavaTpoint";
// Use openssl_encrypt() function 
encryption_value = openssl_encrypt(original_string, ciphering_value,encryption_key, options,encryption_iv_value); 
// Display the encrypted input string data
echo "<br><br> Encrypted Input String: " . encryption_value  . "\n";decryption_key = "JavaTpoint";
// Use openssl_decrypt() function to decrypt the data
decryption_value = openssl_decrypt(encryption_value, ciphering_value,decryption_key, options,encryption_iv_value); 
// Display the decrypted string as an original data
echo "<br><br> Decrypted Input String: " .$decryption_value. "\n";
?>

输出

以下输出显示使用PHP语言对一串数据进行加密。

PHP 如何加密或解密字符串

示例4

以下示例显示了使用php语言对字符串数据进行基本解密。我们可以在加密和解密函数中使用多个动态字符串函数。

<?php
original_string = "Welcome to JavaTpoint With Dynamic Functions \n";
// Print the original input string
echo "Original String: " .original_string;
// Store the cipher method 
ciphering_value = "BF-CBC";iv_length = openssl_cipher_iv_length(ciphering_value);options = 0;
encryption_iv_value = random_bytes(iv_length);
// Store the encryption key
encryption_key =  openssl_digest(php_uname(), 'MD5', TRUE);
// Use openssl_encrypt() functionencryption_value = openssl_encrypt(original_string,ciphering_value, encryption_key,options,encryption_iv_value); 
// Display the encrypted input string data
echo "<br><br> Encrypted Input String: " .encryption_value  . "\n";
decryption_key =  openssl_digest(php_uname(), 'MD5', TRUE);
// Use openssl_decrypt() function to decrypt the datadecryption_value = openssl_decrypt(encryption_value,ciphering_value, decryption_key,options,encryption_iv_value); 
// Display the decrypted string as an original data
echo "<br><br> Decrypted Input String: " .decryption_value. "\n";
?>

输出

以下输出显示使用php语言对数据字符串进行加密。

PHP 如何加密或解密字符串

结论

加密和解密字符串是开发过程中不可或缺且安全的功能。它可以安全地存储和检索数据,而不会泄漏重要的值。PHP函数可以创建和显示数据,而不会泄漏和破坏原始值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程