PHP Australia Conference 2015

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decryptEntschlüsselt einen gegebenen Text

Beschreibung

string gnupg_decrypt ( resource $identifier , string $text )

Entschlüsselt einen gegebenen Text mit den Schlüsseln, die mit gnupg_adddecryptkey hinterlegt wurden.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

text

Der zu entschlüsselnde Text.

Rückgabewerte

Bei Erfolg gibt diese Funktion den entschlüsselten Text zurück. Bei einem Fehler gibt diese Funktion FALSE zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_decrypt() Beispiel

<?php
$res 
gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain gnupg_decrypt($res,$encrypted_text);
echo 
$plain;
?>

Beispiel #2 OO (objektorientiertes)gnupg_encrypt() Beispiel

<?php
$gpg 
= new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain $gpg -> decrypt($encrypted_text);
echo 
$plain;
?>

add a note add a note

User Contributed Notes 2 notes

up
2
Mike
4 years ago
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.
up
0
aidukas at gmail dot com
5 months ago
If empty text is encrypted, the gnupg_decrypt() function will return a boolean FALSE so if you do a strict comparison (===, !==) to track a failure it will trigger you a failure.
For failures use Exceptions:
<?php
        $gpg
= new gnupg();
       
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
       
/*
         .......further code.......
       */
       
try {
           
$string = $gpg->decrypt($stringToDecrypt);
        } catch (
Exception $e) {
        
// do the Error processing
       
}

?>
To Top