openssl rsautl -inkey publickey.txt -pubin -encrypt -in plaintext.txt -out ciphertext.txt
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->loadKey($rsa->getPublicKey()); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); echo $rsa->encrypt(file_get_contents('plaintext.txt'));
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); echo $rsa->decrypt(file_get_contents('ciphertext.txt'));
openssl rsautl -inkey privatekey.txt -decrypt -in ciphertext.txt -out plaintext.txt
openssl rsautl -inkey publickey.txt -encrypt -oaep -in plaintext.txt -out ciphertext.txt
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->loadKey($rsa->getPublicKey()); echo $rsa->encrypt(file_get_contents('plaintext.txt'));
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); echo $rsa->decrypt(file_get_contents('ciphertext.txt'));
openssl rsautl -inkey privatekey.txt -decrypt -oaep -in ciphertext.txt -out plaintext.txt
openssl dgst -sha1 -out signature.txt -sign privatekey.txt plaintext.txt
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); file_put_contents( 'signature.txt', $rsa->sign(file_get_contents('plaintext.txt')) );
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->loadKey($rsa->getPublicKey()); $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); echo $rsa->verify( file_get_contents('plaintext.txt'), file_get_contents('signature.txt') ) ? 'verified' : 'unverified';
openssl dgst -sha1 -verify publickey.txt -signature signature.txt plaintext.txt
openssl dgst -sha1 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -out signature.txt -sign privatekey.txt plaintext.txt
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); file_put_contents( 'signature.txt', $rsa->sign(file_get_contents('plaintext.txt')) );
<?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('privatekey.txt')); $rsa->loadKey($rsa->getPublicKey()); echo $rsa->verify( file_get_contents('plaintext.txt'), file_get_contents('signature.txt') ) ? 'verified' : 'unverified';
openssl dgst -sha1 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -verify publickey.txt -signature signature.txt plaintext.txt
openssl enc -aes-128-cbc -e -in plaintext.txt -out ciphertext.txt -nosalt -K AA -iv AA -p
<?php include('Crypt/AES.php'); $aes = new Crypt_AES(); $aes->setKey(pack('H*', 'AA')); // null-padded to 128 bits $aes->setIV(pack('H*', 'AA')); // null-padded to 128 bits echo $aes->decrypt(file_get_contents('ciphertext.txt'));
<?php $plaintext = 'hello world!'; $privkey = file_get_contents('/path/to/private.key'); // openssl_get_publickey() only creates public key resources from X.509 // certificates hence our creating one $dn = array(); // use defaults $res_privkey = openssl_pkey_get_private($privkey); $res_csr = openssl_csr_new($dn, $res_privkey); $res_cert = openssl_csr_sign($res_csr, null, $res_privkey, 365); openssl_x509_export($res_cert, $str_cert); $res_pubkey = openssl_get_publickey($str_cert); // now that the public key is in a format openssl_get_publickey can use... openssl_seal($plaintext, $ciphertext, $enckey, array($res_pubkey)); $enckey = $enckey[0];
<?php include_once('Crypt/RSA.php'); include_once('Crypt/RC4.php'); $key = 'thisisthekey'; $plaintext = 'hello world!'; $privkey = file_get_contents('/path/to/private.key'); $rsa = new Crypt_RSA(); $rsa->loadKey($privkey); $rsa->loadKey($rsa->getPublicKey()); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); $enckey = $rsa->encrypt($key); $rc4 = new Crypt_RC4(); $rc4->setKey($key); $ciphertext = $rc4->encrypt($plaintext);
// continuing from the above include_once('Crypt/RSA.php'); include_once('Crypt/RC4.php'); $rsa = new Crypt_RSA(); $rsa->loadKey($privkey); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); $key = $rsa->decrypt($enckey); $rc4 = new Crypt_RC4(); $rc4->setKey($key); $result = $rc4->decrypt($ciphertext); echo $result; ?>
// continuing from the above openssl_open($ciphertext, $result, $enckey, openssl_get_privatekey($privkey)); echo $result; ?>
<?php $privkey = file_get_contents('/path/to/private.key'); openssl_private_encrypt('ddd', $ciphertext, $privkey);
<?php include_once('Crypt/RSA.php'); // phpseclib implements PKCS#1 v2.1 which is largely compatible with // PKCS#1 v1.5 (which is what OpenSSL implements) save for instances // where the private key is being used to encrypt. define('CRYPT_RSA_PKCS15_COMPAT', true); $privkey = file_get_contents('/path/to/private.key'); $rsa = new Crypt_RSA(); $rsa->loadKey($privkey); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); $ciphertext = $rsa->encrypt('ddd');
// continuing from the above $rsa = new Crypt_RSA(); $rsa->loadKey($privkey); $rsa->loadKey($rsa->getPublicKey()); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); echo $rsa->decrypt($ciphertext); ?>
// continuing from the above // openssl_get_publickey() only creates public key resources from X.509 // certificates hence our creating one $dn = array(); // use defaults $res_privkey = openssl_pkey_get_private($privkey); $res_csr = openssl_csr_new($dn, $res_privkey); $res_cert = openssl_csr_sign($res_csr, null, $res_privkey, 365); openssl_x509_export($res_cert, $str_cert); $res_pubkey = openssl_get_publickey($str_cert); openssl_public_decrypt($ciphertext, $plaintext, $res_pubkey); echo $plaintext; ?>