As of gnupg version 2, it is not possible to pass a plain password any more. The parameter is simply ignored. Instead, a pinentry application will be launched in case of php running in cli mode. In cgi or apache mode, opening the key will fail.
The simplest solution is to use keys without passwords.
gnupg_decrypt
(PECL gnupg >= 0.1)
gnupg_decrypt — 指定されたテキストを復号する
説明
string gnupg_decrypt
( resource $identifier
, string $text
)
事前に gnupg_adddecryptkey で設定されたキーを使用し、指定されたテキストを復号します。
返り値
成功した場合、この関数は復号されたテキストを返します。 失敗した場合、この関数は FALSE を返します。
例
例1 手続き型の gnupg_decrypt() の例
<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>
例2 オブジェクト指向の gnupg_encrypt() の例
<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>
Mike
28-Jan-2010 03:26
