2013-02-13 68 views
0

我使用GnuPG庫來加密解密消息。我已成功在我的服務器上確認GPG擴展並生成密鑰對。此外,我成功導入另一個公鑰並使用該公鑰加密數據。GNUPG解密在php中失敗

我也用我的公鑰加密的數據,並使用我的私鑰來解密它。

但是,當別人使用加密我的公鑰數據我無法解密。錯誤是

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, "[email protected]", "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; 

相同的代碼被解密由我在我的機器上的加密數據。

我無法提取錯誤的詳細信息。

+0

你確定其他人正確地加密它嗎? – 2013-02-13 15:06:20

+0

是的,我確定,因爲我正在使用第三方Web應用程序使用我的私鑰和密碼解密數據,並且該Web應用程序正在解密加密的文本。 這是我使用 https://www.igolder.com/pgp/decryption/ – 2013-02-13 18:17:33

+0

不要使用第三方系統/應用/服務等,以解密數據的網站。如果你只是把它交給任何黑幕網站,私鑰有什麼意義? – 2013-02-13 18:29:28

回答

0

密碼算法6受到DES的影響。 GnuPG不支持DES,它使用3DES/Triple-DES。我使用3DES對數據進行了加密,並在我的站點成功解密。

希望這有助於其他人遇到同樣的問題。 :)