PHP code example of jamielsharief / encryption
1. Go to this page and download the library: Download jamielsharief/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/ */
jamielsharief / encryption example snippets
use Encryption\KeyPair;
$keyPair = KeyPair::generate();
$publicKey = $keyPair->publicKey(); // this is used to encrypt data
$privateKey = $keyPair->privateKey(); // this is to decrypt data
$string = $keyPair->toString(); // combines both key into a single string
use Encryption\PrivateKey;
$privateKey = new PrivateKey($string);
$privateKey = new PrivateKey($string, ['passphrase' => 'secret']));
use Encryption\PrivateKey;
$privateKey = PrivateKey::load($path);
$privateKey = PrivateKey::load($path, ['passphrase' => 'secret']);
$encrypted = $privateKey->encrypt($data);
$decrypted = $privateKey->decrypt($encrypted); // decrypts data encrypted by public key
$signature = $privateKey->sign($data);
$publicKey = $privateKey->extractPublicKey();
$bits = $privateKey->bits(); // 4096
echo $privateKey->toString();
$privateKey = PrivateKey::generate();
use Encryption\PublicKey;
$publicKey = new PublicKey($string);
use Encryption\PublicKey;
$publicKey = PublicKey::load($path);
$encrypted = $publicKey->encrypt($data);
$decrypted = $publicKey->decrypt($encrypted); // decrypts data encrypted by private key
$signature = $publicKey->verify($data, $signature);
$fingerprint = $publicKey->fingerprint(); // D52A E482 CBE7 BB75 0148 3851 93A3 910A 0719 994D
$bits = $publicKey->bits(); // 4096
echo $publicKey->toString();
$keychain = new Keychain(__DIR__ . '/keys');
$keychain->create('[email protected] ');
$keychain->create('[email protected] ',[
'expires' => '+ 1 year'
]);
$keychain->add('[email protected] ',(string) $privateKey);
$keychain->import('user-1979', __DIR__ .'/privateKey');
$keychain->import('user-1979', __DIR__ .'/publicKey',[
'expires' => '+ 1 year'
]);
$key = $keychain->get('[email protected] ');
/*
DocumentStore\Document Object
(
[id] => 784e148db03ac07ff34ae57c29b01549
[name] => [email protected]
[privateKey] => -----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA0BaIweRiLW1Uunxw
NrPr9GaNWtnr+FbzsY8DNf894yI4n6q47s7yTPCFmHuIDzKaYx0xdS3L2XcY3HYg
ctPUNQIDAQABAkAMQ/fFrgeXc+VVpLYck1hqLI1SeJvvJHjy02I2EZh9RdDcBKi9
+MOuP+TzkVL0w1QAFgB8nPGblPjUB6FMhkwVAiEA9VmWwKxlTevev7XcOUYSOabv
qHeqab6aY8H1+o9+e3MCIQDZHuDTTizUW4frKhvtKiBkwAV4YdErVM9LNFC+TFTX
twIhAL8o/FJGf+/EVRtdoKZnOA//Rz8lbXtSbIxJNVPxtYSNAiBhI5CA2WPzKnRY
AUH3TLarfMG1x0W29j28Ls7FJQ98ZwIgH5Esr246hK1bSGO4R2Z6yFCcBfo1Sgib
bjupP+8HbUs=
-----END PRIVATE KEY-----
[publicKey] => -----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANAWiMHkYi1tVLp8cDaz6/RmjVrZ6/hW
87GPAzX/PeMiOJ+quO7O8kzwhZh7iA8ymmMdMXUty9l3GNx2IHLT1DUCAwEAAQ==
-----END PUBLIC KEY-----
[fingerprint] => E010 6888 BE78 1571 D35A D3CC 22C7 62D3 6025 E288
[expires] => 2050-01-01 12:00:00
[type] => key-pair
[comment] => foo
[created] => 2020-11-20 17:07:41
)
*/
$keychain->delete('[email protected] ');
$keychain->list();
$crypto = new SymmetricEncryption();
$key = $crypto->generateKey(); // 3LSpUJL4s0HNLun4T1KcheGjrVtCjaQ7
$crypto = new SymmetricEncryption();
$encrypted = $crypto->encrypt($text, $key);
$crypto = new SymmetricEncryption();
$decrypted = $crypto->decrypt($text, $key);
$publicKey = PublicKey::load($pathToPublicKey);
$privateKey = PrivateKey::load($pathToPrivateKey);
$crypto = new HybridEncryption();
$encrypted = $crypto->encrypt($data, $publicKey);
echo $crypto->decrypt($encrypted, $privateKey);