函数名:gnupg_decryptverify()
适用版本:PHP 4 >= 4.0.4, PHP 5, PHP 7
用法:gnupg_decryptverify(string $text, string $signature, string &$plaintext)
说明:gnupg_decryptverify() 函数用于解密和验证由 GnuPG 加密的文本。它将解密给定的 $text,并使用 $signature 来验证解密后的文本的完整性和真实性。如果验证成功,解密后的文本将存储在 $plaintext 变量中。
参数:
- $text:要解密和验证的文本。
- $signature:用于验证解密后文本的签名。
- $plaintext:成功解密后的文本将存储在此变量中。
返回值:成功时返回 TRUE,失败时返回 FALSE。
示例:
<?php
// 创建 GnuPG 对象
$gpg = gnupg_init();
// 导入公钥
gnupg_adddecryptkey($gpg, "YOUR_PUBLIC_KEY");
// 加密的文本和签名
$encryptedText = "ENCRYPTED_TEXT";
$signature = "SIGNATURE";
// 解密和验证文本
$plaintext = '';
if (gnupg_decryptverify($gpg, $encryptedText, $signature, $plaintext)) {
echo "解密和验证成功!\n";
echo "解密后的文本: " . $plaintext;
} else {
echo "解密和验证失败!\n";
}
?>
以上示例中,我们首先使用 gnupg_init()
函数创建了一个 GnuPG 对象。然后使用 gnupg_adddecryptkey()
函数导入了我们的公钥。接下来,我们传入加密的文本和签名到 gnupg_decryptverify()
函数中进行解密和验证。如果解密和验证成功,我们将打印解密后的文本。否则,将打印解密和验证失败的消息。请确保替换示例中的 "YOUR_PUBLIC_KEY"
、"ENCRYPTED_TEXT"
和 "SIGNATURE"
为实际的值。