|
openssl_seal
Seal (encrypt) data
(PHP 4 >= 4.0.4, PHP 5)
Example 1676. openssl_seal() example<?php Code Examples / Notes » openssl_sealhfuecks
openssl_seal() can work well when you need to pass data securely to other platforms / languages. What openssl_seal() does is; 1. Generate a random key 2. Encrypt the data symmetrically with RC4 using the random key 3. Encrypt the random key itself with RSA using the public key / certificate 4. Returns the encrypted data and the encrypted key So to decrypt the steps are simply; 1. Decrypt the key using RSA and your private key 2. Decrypt the data using RC4 and the decrypted key The trickiest part may be figuring out how handle the private key - BouncyCastle ( http://www.bouncycastle.org/ ) provides a PEMReader for Java and C# while Not Yet commons-ssl ( http://juliusdavies.ca/commons-ssl/ ) has a KeyStoreBuilder to build Java keystores out of a PEM certificate. A complete example in Java is described at http://blog.local.ch/archive/2007/10/29/openssl-php-to-java.html devel@no-spam
"seals (encrypts) data by using RC4 with a randomly generated secret key" It should be noted that the randomly generated secret key is 128 bits long (openssl: EVP_rc4(void): RC4 stream cipher. This is a variable key length cipher with default key length 128 bits.) |
Change Languageopenssl_csr_export_to_file openssl_csr_export openssl_csr_get_public_key openssl_csr_get_subject openssl_csr_new openssl_csr_sign openssl_error_string openssl_free_key openssl_get_privatekey openssl_get_publickey openssl_open openssl_pkcs12_export_to_file openssl_pkcs12_export openssl_pkcs12_read openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_free openssl_pkey_get_details openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_seal openssl_sign openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_free openssl_x509_parse openssl_x509_read |