Home > Backend Development > PHP Tutorial > Use of PHP encryption and decryption function library

Use of PHP encryption and decryption function library

王林
Release: 2023-06-16 10:52:02
Original
1732 people have browsed it

Use of PHP encryption and decryption function library

As network security issues become increasingly prominent, encryption has become an indispensable part of modern network technology. In PHP, the encryption and decryption function library provides many encryption and decryption functions, which can be used to process sensitive information and ensure data security. This article will introduce the use of PHP encryption and decryption function library.

1. Commonly used encryption and decryption functions

  1. md5 encryption:

md5 encryption is an irreversible encryption method, often used to store passwords and verify Verify the integrity of the file. The usage is very simple, for example:

$message = 'password';
$encrypted = md5($message);
Copy after login
  1. sha1 encryption:

sha1 encryption is also an irreversible encryption method, and the usage method is similar to md5 encryption. For example:

$message = 'password';
$encrypted = sha1($message);
Copy after login
  1. base64 encryption:

base64 encryption is a reversible encryption method suitable for encoding binary data into ASCII character format. For example:

$message = 'password';
$encrypted = base64_encode($message);
Copy after login

base64 decryption can use the base64_decode function. For example:

$encrypted = 'cGFzc3dvcmQ=';
$message = base64_decode($encrypted); 
Copy after login
  1. AES encryption:

AES encryption provides a reversible encryption method that can be used to protect data transmission and storage. The usage is as follows:

$message = 'password';
$key = 'mysecretkey';
$encrypted = openssl_encrypt($message, 'AES-256-CBC', $key);
Copy after login

Among them, 'AES-256-CBC' is the encryption algorithm, and $key is the key. AES decryption can use openssl_decrypt function. For example:

$encrypted = 'G0TzOGxUWSJ2XOGVTYaZDFtB26oTVPqsIiL0FmzNVcA=';
$key = 'mysecretkey';
$message = openssl_decrypt($encrypted, 'AES-256-CBC', $key);
Copy after login
  1. RSA encryption:

RSA encryption provides a public key encryption and private key decryption method, which is suitable for common data encryption scenarios. The usage method is as follows:

First generate the public key and private key:

$privKey = openssl_pkey_new(array(
    'private_key_bits' => 1024,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
));

openssl_pkey_export($privKey, $pkey);

$pubKey = openssl_pkey_get_details($privKey);
$pubKey = $pubKey['key'];
Copy after login

Then use the public key to encrypt:

$message = 'password';
$encrypted = '';
$success = openssl_public_encrypt($message, $encrypted, $pubKey);
Copy after login

RSA decryption can use the openssl_private_decrypt function. For example:

$encrypted = '';
$message = '';
$success = openssl_private_decrypt($encrypted, $message, $privKey);
Copy after login

2. Use of encryption and decryption module

In practical applications, we may need to use a complete encryption and decryption module to handle data security. In PHP, there are some excellent encryption and decryption modules, such as mcrypt and sodium. The following describes how to use these two modules.

  1. mcrypt module:

The mcrypt module is a widely used encryption and decryption module in PHP, providing a variety of symmetric encryption algorithms and asymmetric encryption algorithms. The usage method is as follows:

First set the key and initialization vector:

$key = 'mysecretkey';
$iv = mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC),
MCRYPT_RAND);
Copy after login

Then use the mcrypt_encrypt function to encrypt:

$message = 'password';
$encrypted = mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
$key,
$message,
MCRYPT_MODE_CBC,
$iv
);
Copy after login

mcrypt decryption can use the mcrypt_decrypt function. For example:

$decrypted = mcrypt_decrypt(
MCRYPT_RIJNDAEL_256,
$key,
$encrypted,
MCRYPT_MODE_CBC,
$iv
);

$decrypted = rtrim($decrypted, "");
echo $decrypted;
Copy after login
  1. sodium module:

sodium module is an encryption and decryption module introduced in PHP7 and above, providing many advanced encryption features, such as password hashing functions and digital signature algorithms, etc. The usage is as follows:

First generate the key:

$key = sodium_crypto_secretbox_keygen();
Copy after login

Then use the sodium_crypto_secretbox function to encrypt:

$message = 'password';
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$encrypted = sodium_crypto_secretbox($message, $nonce, $key);
Copy after login

sodium decryption can use the sodium_crypto_secretbox_open function. For example:

$decrypted = sodium_crypto_secretbox_open($encrypted, $nonce, $key);

if ($decrypted === false) {
    throw new Exception('Failed to decrypt message');
}

echo $decrypted;
Copy after login

3. Summary

Today, as network security becomes increasingly important, encryption has become an essential technology for protecting data privacy. PHP provides a wealth of encryption and decryption function libraries and modules. Developers can choose the most appropriate encryption method according to different needs to ensure data security. Through the introduction of this article, I believe that readers have mastered the basic usage of the PHP encryption and decryption function library and the use of commonly used encryption and decryption modules.

The above is the detailed content of Use of PHP encryption and decryption function library. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template