【问题标题】:GNUPG decryption failed in phpGNUPG解密在php中失败
【发布时间】:2013-01-29 03:34:42
【问题描述】:

我正在使用 GnuPG 库来加密解密消息。我已经成功地在我的服务器上配置了 GPG 扩展并生成了一个密钥对。我也成功地导入了另一个公钥并使用该公钥加密数据。

我还使用我的公钥加密数据并使用我的私钥对其进行解密。

但是当其他人使用我的公钥加密数据时,我无法解密它。错误是

Warning: gnupg_decrypt(): decrypt failed in pgpdecrypt.php on line 22 

我的代码是

$Message = $_REQUEST["Message"];

// Specify custom location of GnuPG binary.
$res = gnupg_init();

gnupg_seterrormode($res, GNUPG_ERROR_WARNING); 

$rtv = gnupg_adddecryptkey($res, "rizwan@google.com", "0000");
echo gnupg_geterror($res) . "<br>"; // Print if any errors

$enc = gnupg_decrypt($res, $Message); // ERROR IS AT THIS LINE
echo gnupg_geterror($res) . "<br>"; // Print if any errors
echo $enc;

同样的代码正在解密我在我的机器上加密的数据。

我无法提取错误详细信息。

【问题讨论】:

  • 你确定其他人正确加密了吗?
  • 是的,我确定,因为我正在使用第三方网络应用程序使用我的私钥和密码来解密数据,并且该网络应用程序正在解密加密的文本。这是我正在使用的网站igolder.com/pgp/decryption
  • 切勿使用第三方系统/应用程序/服务等来解密您的数据。如果您只是将私钥交给任何阴暗的网站,那么拥有私钥有什么意义?
  • 我们目前只是在测试。我深入研究它,发现以下错误 cipher algorithm 6 is unknown or disabled 希望您能提供帮助
  • GnuPG PECL 扩展最后一次更新是在 2010 年 7 月 20 日。它很可能与当前的 PHP 版本不兼容。您应该改用 PEAR 包 pear.php.net/package/Crypt_GPG

标签: php gnupg pgp


【解决方案1】:

密码算法 6 参考 DES。 GnuPG 不支持 DES,而是使用 3DES/Triple-DES。我使用 3DES 加密数据,并在我的站点成功解密。

希望这对遇到同样问题的其他人有所帮助。 :)

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 1970-01-01
    • 2014-05-11
    • 2016-06-12
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2012-10-05
    相关资源
    最近更新 更多