The simple method of Data Encryption and Decryption using openssl_pkey.
Hello! Folks, This blog is about encrypting and decrypting your data using PHP openssl_pkey methods. Before moving on to the main topics of the article make sure your server has enabled open_ssl and working properly. [read the article here]. There are other methods available in PHP for encryption and decryption. Once the configuration is done just follow the below methods:
In this blog post, we will discuss how to use PHP openssl_pkey to encrypt and decrypt data. It is an encryption library that uses the OpenSSL library. It provides an easy-to-use interface for data encryption and decryption.
First, we will discuss how to generate a public and private key pair using PHP openssl_pkey. Next, we will discuss how to use these keys to encrypt and decrypt data. Finally, we will discuss how to use PHP openssl_pkey to sign data.
There are other methods or functions to encrypt and decrypt your data as mentioned here.
Step 1:
Create a php file and add below codes:
class CryptGen{ // generate private and public key public static function genKey(){ $res = openssl_pkey_new([ "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export($res,$privatekey); return [$privatekey, openssl_pkey_get_details($res)['key']]; } //encryption method public static function getEncrypt($messge, $privateKey){ openssl_private_encrypt($messge, $encrypted, $privateKey); return base64_encode($encrypted); } //decryption method public static function getDecrypt($encrypted, $publickey){ openssl_public_decrypt(base64_decode($encrypted), $decrypted, $publickey); return $decrypted; } // validate encrypted string public static function isValid($message,$encrypted, $publicKey){ return $message == self::getDecrypt($encrypted,$publicKey); } }
Now you nee to execute the class and its methods to get the result.
//get the key pairs [$privateKey, $publickey] = CryptGen::genKey(); // Simple string $message = "Hi There"."<br/>"; // Now encrypt $encrypted_message = CryptGen::getEncrypt($message,$privateKey); // encrypted message echo $encrypted_message."<br/>"; //decrypted message echo CryptGen::getDecrypt($encrypted_message, $publickey)."<br/>"; // vlidate message (returns bool(true) or bool(false)) var_dump(CryptGen::isValid($message,$encrypted_message,$publickey));
Hope it will work for you! 🙂
If somebody wants to develop a blockchain project [demo project] then it might help to build basic encryption and decryption.