1. Go to this page and download the library: Download dwgebler/encryption library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dwgebler / encryption example snippets
use Gebler\Encryption\Encryption;
$crypt = new Encryption();
$encrypted = $crypt->encryptWithPassword('This is a secret message', 'SecurePassword');
$decrypted = $crypt->decryptWithPassword($encrypted, 'SecurePassword');
$mySecret = null;
$data = "Hello world! This is a secret message.";
$result = $crypt->encryptWithSecret($data, $mySecret);
// $mySecret has now been populated with a new secret key
// Alternatively, generate a new key.
$mySecret = $crypt->generateEncryptionSecret();
$result = $crypt->encryptWithSecret($data, $mySecret);
// Alternatively, create a key and encode it as hex.
// Keys should be 32 bytes long - shorter keys are forced to this length by a deterministic hash,
// but this is not recommended. Longer keys will throw an InvalidArgumentException.
$mySecret = bin2hex("my_super_secret_key");
// ...or use random_bytes() to generate a random key.
$mySecret = bin2hex(random_bytes(32));
$result = $crypt->encryptWithSecret($data, $mySecret);
// Or, pass in a raw binary key by setting the `hex` parameter to false.
$mySecret = random_bytes(32);
$result = $crypt->encryptWithSecret($data, $mySecret, false);
// $result is now base64 encoded, e.g.
echo $result;
// wgYwuB/by9bz+CvHj1EtylicXnRH6hl9hLALsUUPUHaZeO3sEj4hgi8+pKBZGZIG6ueRKw3xpvrG8dRWU9OCn3aMtlwLz8aapUX/oK3L
$mySecret = "my_super_secret_key";
$message = "This is a test message.";
$encrypted = $crypt->encryptWithSecret($message, $mySecret, false);
echo $encrypted, PHP_EOL;
$decrypted = $crypt->decryptWithSecret($encrypted, $mySecret, false);
echo $decrypted, PHP_EOL;
// Generate a new random keypair.
$keypair = $crypt->generateEncryptionKeypair();
// Or provide a password to generate a deterministic keypair.
$keypair = $crypt->generateEncryptionKeypair("my_super_secret_password");
// Or use a pre-existing keypair.
// Once you have a keypair, you can export the public key as a hexadecimal string,
// for storage or transmission.
$publicKey = $keypair['publicKey'];
// The keypair also
$aliceKeypair = $crypt->generateEncryptionKeypair("alice_secret");
// In the real-world, Bob has provided Alice with his public key, but for demo purposes
// we'll generate a keypair for him too.
$bobKeypair = $crypt->generateEncryptionKeypair("bob_secret");
// Alice encrypts a message for Bob, using his public key and her private key.
$message = "Hello Bob! This is a secret message from Alice.";
$encrypted = $crypt->encryptWithKey($message, $bobKeypair['publicKey'], $aliceKeypair['privateKey']);
// Alice can now transmit $encrypted to Bob. It will look something like this:
// hMvdJf2L78ZWcF38WRXJ16q3xXnlsWWfOsbJISPVwJhBtdcWbZ8SquS3oyJD1k6H/lAs+VHXPpDNfYLWO3wMLl+FB8rYUyCe+IZzti3dFL0YljeJ3QreGlrv
echo $encrypted, PHP_EOL;
// Bob decrypts the message using his private key and the public key of Alice.
$decrypted = $crypt->decryptWithKey($encrypted, $bobKeypair['privateKey'], $aliceKeypair['publicKey']);
// Hello Bob! This is a secret message from Alice.
echo $decrypted, PHP_EOL;
$bobKeypair = $crypt->generateEncryptionKeypair("bob_secret");
// Alice encrypts a message for Bob, using his public key.
$message = "Hello Bob! This is a secret message from an unknown sender.";
$encrypted = $crypt->encryptWithKey($message, $bobKeypair['publicKey']);
// Alice can now transmit $encrypted to Bob.
echo $encrypted, PHP_EOL;
// Bob decrypts the message using his full keypair.
$decrypted = $crypt->decryptWithKey($encrypted, $bobKeypair['keypair']);
// Hello Bob! This is a secret message from an unknown sender.
echo $decrypted, PHP_EOL;
// Generate a new random keypair.
// Like generateEncryptionKeypair, you can also optionally provide a password to generate a deterministic keypair.
$aliceSigningKeypair = $crypt->generateSigningKeypair();
// Alice signs a message for Bob, using her private key.
$message = "This is a message signed by Alice.";
$signedMessage = $crypt->getSignedMessage($message, $aliceSigningKeypair['privateKey']);
// Alice can now transmit $signedMessage to Bob. It will look something like this:
// JaI6p6jb5qQ041DiK1Yqbk8u1r/wVAovzy57ELfwrWfhqLCUU9jTzBLH6K6v1VF/8vOxaOZe2r8ch/GUKmfgC1RoaXMgaXMgYSBtZXNzYWdlIHNpZ25lZCBieSBBbGljZS4=
// Note: The message itself is NOT encrypted and can be viewed by anyone, by decoding the base64-encoded signed message.
echo $signedMessage, PHP_EOL;
// Bob can now use Alice's public key to verify the signature and obtain the message part.
// If the message has been tampered with, the signature will be invalid and the message will be rejected.
$verifiedMessage = $crypt->verifySignedMessage($signedMessage, $aliceSigningKeypair['publicKey']);
// This is a message signed by Alice.
echo $verifiedMessage, PHP_EOL;
$aliceSigningKeypair = $crypt->generateSigningKeypair();
// Alice signs a message for Bob, using her private key.
$message = "This is a message signed by Alice.";
$signature = $crypt->getMessageSignature($message, $aliceSigningKeypair['privateKey']);
// Alice can now transmit the message and signature separately to Bob.
// Bob can now use Alice's public key to verify the signature.
// If the message has been tampered with, the signature will be invalid and the message will be rejected.
$messageAuthenticated = $crypt->verifyMessageSignature($message, $signature, $aliceSigningKeypair['publicKey']);
if ($messageAuthenticated === true) {
echo "The message has not been tampered with.", PHP_EOL;
}
$message = "This is a message signed anonymously with a secret key.";
// We can generate a secure, random 32 byte key, which is returned as a hexadecimal string.
$secret = $crypt->generateSigningSecret();
// Or, as long as the key is 32 bytes (256 bits), you can use any other string.
$secret = hash("sha256", "my secret key");
// Like with the symmetric encryption functions, you can pass an optional third parameter
// to signWithSecret to specify that the secret key is NOT a hexadecimal string.
$secret = hash("sha256", "my secret key", true);
$signature = $crypt->signWithSecret($message, $secret, false);
// Or omit this parameter if the secret is a hexadecimal string.
$secret = $crypt->generateSigningSecret();
$signature = $crypt->signWithSecret($message, $secret);
// The message can now be either transmitted to someone else who also has the shared secret,
// or later verified on the same system, e.g. after being retrieved from a database.
$messageAuthenticated = $crypt->verifyWithSecret($signature, $message, $secret);
if ($messageAuthenticated === true) {
echo "The message has not been tampered with.", PHP_EOL;
}
// Similarly, pass false as the third parameter if the secret is NOT a hexadecimal string.
$secret = hash("sha256", "my secret key", true);
$signature = $crypt->signWithSecret($message, $secret, false);
$messageAuthenticated = $crypt->verifyWithSecret($signature, $message, $secret, false);
if ($messageAuthenticated === true) {
echo "The message has not been tampered with.", PHP_EOL;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.