2014-01-21 42 views
0

我有一個擴展名爲.asc的公共密鑰,我需要用它來加密數據並以純文本文件發送。我試圖在使用php的Windows機器中完成此操作。有任何想法嗎? 謝謝,使用公共密鑰加密大數據.ASC在php

+1

在PECL中,有一個gnupg擴展http://www.php.net/manual/en/book.gnupg.php –

+0

rocket-hazmat:我在linux中配置它沒有任何問題。 Windows是一種痛苦...我希望能夠在INI文件中找到我可以引用的dll,但是我沒有看到任何其他的東西 – Voltaire

回答

0

確保你installed the gnupg extension for PHP

$gpg = new gnupg(); 
$publicData = file_get_contents('public.asc'); 
$publicKey = $gpg->import($publicData); 
$gpg->addencryptkey($publicKey['fingerprint']); 
echo $gpg->encrypt('Data to encrypt'); 

而不是加密常量,替換文件內容,並存儲加密的消息,無論你想要的。

+0

gnupg擴展在Windows中並不那麼簡單。我嘗試使用PECL進行安裝,但出現錯誤「錯誤:DSP gnupg.dsp不存在。」我可能需要從源代碼編譯它... – Voltaire

+0

你可能會更快樂,只是調用二進制文件。確保將公鑰放到Web服務器的GnuPG目錄中,只需調用'gpg.exe -r DEADBEEF -d文件加密> encrypted-file.asc'。您可能必須使用GnuPG的完整路徑。或者簡單地使用一個Linux機器作爲網絡服務器... –

+0

不是一個壞主意。謝謝Jens Erat。 – Voltaire