2013-05-23 6 views
0

Я создал пару ключей (открытый и закрытый), а также из-консоли:зашифровать файл с PHP и открытым ключом

openssl smime -encrypt -aes256 -in backup.sql -binary -DEM -out outform backup_encrypted.sql public_key.pem

зашифровать файл правильно. Sql, как я могу сделать это с помощью php? Я пробовал несколько и ничего. Функции

Здесь я оставляю один из них.

$data=file_get_contents("backup.sql"); 
$key=file_get_contents("public_key.pem"); 
openssl_public_encrypt($data,$output,$key); 
echo $output; 

$ выход возвращается ничего .. Спасибо.

+0

Перед тем, как зашифровать файл. Используете ли вы двухстороннее шифрование? один для пассивно шифрования, поэтому его нельзя прочитать, а другой - для расшифровки, чтобы его можно было прочитать? –

ответ

2

Пожалуйста, обратите внимание на the manual, вы должны дать путь открытого ключа:

$data=file_get_contents("backup.sql"); 
$key="file://path/to/public_key.pem"; 
openssl_public_encrypt($data,$output,$key); 
echo $output; 
+0

не работает. Openssl_public_encrypt работает с большими текстовыми файлами? –

+0

и должен посмотреть запись и получить это .. что я говорил .. есть ли какое-нибудь решение? "error: 0406B06E: rsa-процедуры: RSA_padding_add_none: данные слишком велики для размера ключа" tt –

+0

@AitorChicharro Что делать, если вы попытались: 'openssl_public_encrypt ($ data, $ output, $ key, OPENSSL_NO_PADDING);'? – HamZa

1

вы можете вы file_get_contents(), как, например:

$data=file_get_contents("backup.sql"); 
$key= file_get_contents('public_key.pem'); 
openssl_public_encrypt($data,$output,$key); 
echo $output; 

я проверил это отрывки и работа.

Смежные вопросы