


Detailed explanation of php rsa encryption and decryption_PHP tutorial
Detailed explanation of the use of php rsa encryption and decryption
1. The first step in encryption and decryption is to generate a public key and private key pair. The content encrypted by the private key can be decrypted by the public key (reverse You can also come over)
Download the open source RSA key generation tool openssl (usually Linux systems come with this program), unzip it to a separate folder, enter the bin directory, and execute the following command:
The code is as follows:
openssl genrsa -out rsa_private_key.pem 1024
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
The first command generates the original RSA private key file rsa_private_key.pem, the second command converts the original RSA private key to pkcs8 format, and the third command generates the RSA public key rsa_public_key.pem
It can be seen from the above that the corresponding public key can be generated through the private key, so we use the private key private_key.pem on the server side, and the public key is distributed to front-ends such as android and ios
2. Use the generated public key and private key to encrypt and decrypt in php, and directly upload the code
The code is as follows:
$fp=fopen("rsa/rsa_private_key.pem","r"); //Your private key file path
$private_key=fread($fp,8192);
fclose($fp);
$fp1=fopen("rsa/rsa_public_key.pem","r"); //Your public key file path
$public_key=fread($fp1,8192);
fclose($fp1);
//echo $private_key;
$pi_key=openssl_pkey_get_private($private_key);//This function can be used to determine whether the private key is available and can return the resource id Resource id
$pu_key=openssl_pkey_get_public($public_key );//This function can be used to determine whether the public key is available
print_r($pi_key);echo "n"; echo "
";
print_r($pu_key);echo "n"; echo "
";
echo "
";
$data='php ras encryption algorithm';
$encrypted = "";
$decrypted = "";
echo "Encrypted source data:".$data."n"; echo "
";
echo "private key encrypt:n"; echo "
";
openssl_private_encrypt($data,$encrypted,$pi_key);//Private key encryption
$encrypted = base64_encode($encrypted);//Encrypted content usually contains special characters and requires encoding conversion. When transmitting through URLs between networks, pay attention to whether base64 encoding is URL safe
echo 'After private key encryption:'.$encrypted."n"; echo "
";echo "
";
echo "public key decrypt:n"; echo "
";
openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//The content encrypted by the private key can be decrypted by the public key
echo 'After public key decryption:'.$decrypted."n"; echo "
";
echo "
";
echo "public key encrypt:n"; echo "
";
openssl_public_encrypt($data,$encrypted,$pu_key);//Public key encryption
$encrypted = base64_encode($encrypted);
echo $encrypted,"n"; echo "
";
echo "private key decrypt:n"; echo "
";
openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//Private key decryption
echo $decrypted,"n"; echo "
";
FAQs about PHP’s RSA configuration:
●Usage of 3 DLL files in the openssl folder in the code example of PHP development language
1. If your system is a windows system and there are no libeay32.dll and ssleay32.dll files in the system32 file directory
Then you need to copy these two files to the system32 file directory.
2. If there is no php_openssl.dll in your php installation directory (phpext)
Then please put php_openssl.dll in this folder
Friends who like encryption and decryption must read this article carefully and benefit a lot. . .

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.
