Вы можете использовать открытый / закрытый ключ через openssl и довольно просто, если вы используете его один или два раза
function encryptString($clearText)
{
$keyFile=fopen("public.pem","r");
$publicKey=fread($keyFile,8192);
fclose($keyFile);
openssl_get_publickey($publicKey);
openssl_public_encrypt($clearText,$cryptText,$publicKey);
return(base64_encode($cryptText));
}
function decryptString($cryptText)
{
$keyFile=fopen("private.pem","r");
$privateKey=fread($keyFile,8192);
fclose($keyFile);
openssl_get_privatekey($privateKey);
$binText = base64_decode($cryptText);
openssl_private_decrypt($binText,$clearText,$privateKey);
return($clearText);
}
Для создания пары ключей, краткое руководство: http://en.wikibooks.org/wiki/Transwiki:Generate_a_keypair_using_OpenSSL
Короче говоря
openssl rsa -pubout -in private.pem -out public.pem
Обновление
@ keepwalking спросили ниже, как это сделать из командной строки, и @vstm ответил отличной ссылкой http://www.devco.net/archives/2006/02/13/public_-_private_key_encryption_using_openssl.php.
Чтобы подвести итог этой страницы, после создания ключей вы можете зашифровать текстовый файл file.txt и вывести его в file.ssl , используя следующую команду.
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Чтобы расшифровать file.ssl в другой файл decrypt.txt , вы можете использовать следующую команду.
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt