This time I will bring you the implementation of the RSA encryption and decryption algorithm function. What are the precautions for the implementation of the RSA encryption and decryption algorithm function. The following is a practical case, let's take a look.
You can first go to the website http://web.chacuo.net/netrsakeypair to generate public and private keys online
RSA asymmetric encryption algorithm, if it is public key encryption, just You have to use the private key to decrypt, and vice versa. If the private key is encrypted, use the public key to decrypt. The following are the relevant implementation functions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function privateEncrypt( $private_key , $data ){
$encrypted = '' ;
$pi_key = openssl_pkey_get_private( $private_key );
$plainData = str_split ( $data , 100);
foreach ( $plainData as $chunk ){
$partialEncrypted = '' ;
$encryptionOk = openssl_private_encrypt( $chunk , $partialEncrypted , $pi_key );
if ( $encryptionOk === false){
return false;
}
$encrypted .= $partialEncrypted ;
}
$encrypted = base64_encode ( $encrypted );
return $encrypted ;
}
|
Copy after login
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function publicDecrypt( $public_key , $data ){
$decrypted = '' ;
$pu_key = openssl_pkey_get_public( $public_key );
$plainData = str_split ( base64_decode ( $data ), 128);
foreach ( $plainData as $chunk ){
$str = '' ;
$decryptionOk = openssl_public_decrypt( $chunk , $str , $pu_key );
if ( $decryptionOk === false){
return false;
}
$decrypted .= $str ;
}
return $decrypted ;
}
|
Copy after login
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function publicEncrypt( $public_key , $data ){
$encrypted = '' ;
$pu_key = openssl_pkey_get_public( $public_key );
$plainData = str_split ( $data , 100);
foreach ( $plainData as $chunk ){
$partialEncrypted = '' ;
$encryptionOk = openssl_public_encrypt( $chunk , $partialEncrypted , $pu_key );
if ( $encryptionOk === false){
return false;
}
$encrypted .= $partialEncrypted ;
}
$encrypted = base64_encode ( $encrypted );
return $encrypted ;
}
|
Copy after login
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function privateDecrypt( $private_key , $data ){
$decrypted = '' ;
$pi_key = openssl_pkey_get_private( $private_key );
$plainData = str_split ( base64_decode ( $data ), 128);
foreach ( $plainData as $chunk ){
$str = '' ;
$decryptionOk = openssl_private_decrypt( $chunk , $str , $pi_key );
if ( $decryptionOk === false){
return false;
}
$decrypted .= $str ;
}
return $decrypted ;
}
|
Copy after login
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to php Other related articles on the Chinese website!
Recommended reading:
How to use the PHP generator
##phpStudy2018 installation tutorial
ThinkPHP implements WeChat payment (jsapi payment) process tutorial detailed explanation_php example
The above is the detailed content of Implementation of RSA encryption and decryption algorithm functions. For more information, please follow other related articles on the PHP Chinese website!