This is an implemetation of part of the sodium encryption library providing the ability to do end to end encryption.
https://www.php.net/manual/en/intro.sodium.php
Install with Composer:
composer require tankfairies/tcrypt
Instantiate a copied of Keys for handing local key pairs.
$keys = new Keys();
$keys->setPasswordAndSalt('senders_password', 'a_custom_salt_at_least_15_chars_long');
$thePublicSenderKey = $keys->getPublicKey();
$keys = new Keys();
$keys->setPasswordAndSalt('receivers_password', 'a_custom_salt_at_least_15_chars_long');
$thePublicReceiverKey = $keys->getPublicKey();
Example of a generated public key
a322e905bd29167702bfc816a6e5ad2be0d8ede171d3c6e68497a5ef5b316d08
Encrypt the message: -
$crypt = new Encrypt();
$crypt
->setLocalKeys($sendKeys)
->setForeignKey($thePublicReceiverKey);
$encryptedMessage = $crypt->enc('my secret message');
This will produce something like: -
9G/vMg4piI778CzVpjcOL/c4kGV7+j0ih+JfuYh0QzWYyfAvwQcy1tW8jXcrb2Fd5aRvkljTeQ55
To Decrypt the message: -
$decrypt = new Decrypt();
$decrypt
->setLocalKeys($keys)
->setForeignKey($thePublicSenderKey);
$decryptedMessage = $decrypt->dec($encryptedMessage);
The tankfairies/tcrypt library is Copyright (c) 2019 Tankfairies (https://tankfairies.com) and licensed for use under the MIT License (MIT).