2013-07-22 2 views
1

Я полностью застрял в проблеме pgp, но я думаю, что это более логично, чем техническая проблема. Во всяком случае, я не понимаю.дешифровать файл с помощью PHP gnupg после шифрования с помощью gpg4win

Целью является шифрование файла с помощью gpg4win (www.gpg4win.de/index.html) и расшифровка его с помощью PHP (gnupg).

Первое, что я сделал, я создал сертификат с gpg4win, установил кодовую фразу и зашифровал простой текстовый файл (ASCII). Затем я загрузить файл и попытался расшифровать его с помощью следующего кода:

$content = file_get_contents("some-test-data.asc"); 
$gpg = new gnupg(); 
$gpg -> adddecryptkey("MYFINGERPRINT","my.pass.phrase"); 
$plain = $gpg -> decrypt($content); 
var_dump($plain); 

Результат был: BOOL (ложь)

Что я делаю неправильно? Я пробовал разные коды и предложения, но всегда получал bool (false).

Являются ли эти методы несовместимыми, у меня есть другое приложение?

Я ценю каждую небольшую помощь, которую я мог получить. Большое спасибо!

P.S. PHP составлен с помощью gnupg GPGme Version 1.4.2 Расширение версии 1.3.3-dev

+0

try 'echo $ gpg -> geterror();' см. Проблему – DevZer0

+0

Вы скопировали свой секретный ключ на сервер? Недостаточно предоставить пропущенную фразу, это только расшифровывает закрытый ключ, который все еще необходим (в правильном ключевом ключе). –

+0

В какое место мне нужно скопировать закрытый ключ и как мне рассказать сценарий, какой ключ использовать? – lufi

ответ

0

Проблема решена. Если кто-то столкнулся с такой же проблемы, это связано с отставанием в PHP Документация:

строка gnupg_decrypt (ресурс $ идентификатор, строка $ текста)

Если найден следующий комментарий в разделе комментариев: По GnuPG версии 2, невозможно передать простой пароль. Параметр просто игнорируется. Вместо этого приложение pententry будет запущено в случае запуска php в режиме cli. В режиме cgi или apache открытие ключа завершится неудачно. Простейшим решением является использование ключей без паролей.

Так что я создал новый ключ без пароля, и все работает нормально.

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