簡體   English   中英

PHP gnupg get_key失敗錯誤

[英]php gnupg get_key failed error

我正在嘗試使用PHP中的PGP(gnupg)解密一條簡單消息。 但是我總是會收到此錯誤: get_key failed 在堆棧溢出時,我看到很多人遇到此問題,但是我無法解決它。 我遵循了包含如何設置文件權限的本教程:http: //46dogs.blogspot.nl/2007/11/setting-up-gnupg-gpg-for-use-with-php.html

這是我正在使用的腳本。 我的PGP密鑰不包含相位短語:

<?php
putenv("GNUPGHOME=/home/user/.gnupg/");
$gpg = new gnupg();
$gpg -> addencryptkey("2ADA21BDC9C96556EA0758F04A935AE0010AE203");
$encrypted_text = $gpg -> encrypt("just a test");
//echo $encrypted_text;

$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
try{
$gpg -> adddecryptkey("2ADA21BDC9C96556EA0758F04A935AE0010AE203","");
$decrypted_text = $gpg -> decrypt($encrypted_text);
} catch (Exception $e) {
    echo $e;
}
echo $decrypted_text;
?> 

文件(pubring.gpg,trustdb.gpg和secring.gpg)的權限與教程完全相同(僅用戶更改為nginx)。
加密部分起作用。 但是解密是行不通的。

有人知道哪里出問題了嗎?

我正在運行Centos和php5。

線程中的代碼很好,但是請記住,您的nginx用戶不同於user並且nginx在訪問其gnupg密鑰時會遇到問題,因為(默認情況下) /home/user/.gnupg僅可訪問OWNER( user登錄)。 最簡單的方法是為Nginx用戶設置主目錄,並為此創建自己的gnupg密鑰。 否則,僅當您使用user登錄名登錄到終端時,運行此php才會成功(因為/home/user/.gnupg)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM