2012-02-29 339 views
2

我是PGP的新手,想要在一個需求中實現加密/解密。我搜索了它並決定使用Boynce Castle算法。但是當我試圖理解它時,我對如何獲得.pkr和.skr文件感到困惑。我剛剛下載了需要的jar和程序,當試圖運行它時,顯示我找不到文件。我自己並不知道我創建了.pkr和.skr文件(從.txt轉換而來),但我認爲它應該採用某種格式,並且應該由某種機制生成。有人可以解釋一下嗎?我可以如何繼續..?公鑰和私鑰文件(.pkr,.skr)

回答

0

這些文件都是公共和私人(在OpenPGP的術語祕密)分別鑰匙扣。它們包含公鑰和私鑰的集合。您通常會生成一個密鑰對(一對公鑰和私鑰)或幾個密鑰對供您自己使用,而其他人也這樣做。然後他們可以給你他們的公開的密鑰,並且你從這些密鑰中創建一個公共密鑰環。公用密鑰環然後用於加密收件人的數據或驗證其他人的daa簽名。

私人鑰匙圈是從你的,你生成私鑰組成。您使用私鑰匙來簽署數據,您可以將相應的公鑰提供給其他人,以便他們可以爲您加密數據(然後使用私鑰解密)。

我相信BouncyCastle的具有密鑰生成功能,或者您也可以使用GnuPG應用程序或PGP桌面生成密鑰。

0

您可以檢查與BouncyCastle的庫船OpenPGP的密鑰生成的例子。

它們分別位於:

[充氣城堡源] \ SRC \有機\ BouncyCastle的\ OpenPGP的\例子\ RSAKeyPairGenerator.java

[充氣城堡源] \ SRC \有機\ BouncyCastle的\ OpenPGP的\實例\ DSAElGamalKeyRingGenerator.java

使用該密鑰

實施例的代碼可以被發現在:

[充氣城堡源] \ SRC \有機\ BouncyCastle的\ OpenPGP的\例子\ KeyBasedFileProcessor.java

4

如果你有相同的Windows計算機作爲PGP命令行安裝PGP桌面,安裝PGP桌面爲默認的目錄,然後PGP命令行會自動查找和使用您現有的鑰匙圈。如果您未使用PGP桌面產品中的PGP密鑰環,則需要創建空白密鑰環文件。這樣做,打開命令提示符,然後鍵入以下命令:

pgp --create-keyrings 

這將創建的默認密鑰環位置的pubring.pkr(公共鑰匙圈)和secring.skr(私人鑰匙圈)文件。對於Windows,它位於我的文檔> PGP文件夾中。本文將使用[]來標識您需要輸入的特定於您的個人密鑰的信息。

之後,您將需要創建一個密鑰對。若要使用PGP命令行請按照下列步驟一對密鑰:

在命令行中輸入:

pgp --gen-key [user ID] --key-type [key type] --bits [bits #] --passphrase [passphrase] 

注:包含空格必須包含引號內的任何信息。

示例:以下示例將向您展示如何使用密碼「my passphrase」爲ACME Corp的員工Joe User創建2048位RSA密鑰。

pgp --gen-key "Joe User" --key-type RSA --bits 2048 --passphrase "my passphrase" 

PGP命令行現在將生成您的密鑰對。您應該看到您的密鑰ID(即0X12345678)以及密鑰已成功生成的消息。

注:要顯示你的新密鑰輸入以下命令:

pgp --list-keys 

這將顯示所有被你的鑰匙圈中的密鑰。

密鑰對生成並識別後,重要的是導出密鑰對的公共部分(公鑰),以便其他人可以導入您的公鑰並加密給您。注意:將公鑰導出到文件後,分發起來很容易。例如,您可以將其附加到電子郵件中,將公共密鑰塊文本粘貼到電子郵件正文(用記事本打開)中,或複製到CD中。要導出您的公鑰,您需要獲得關於密鑰的信息以識別它,這將在本文檔中稱爲(輸入)。您可以使用密鑰ID(即0x12345678),用戶ID(即「Joe用戶」)或部分用戶ID(即Joe)。要導出密鑰,請執行下列操作:

pgp --export (input) 

PGP命令行通過導出密鑰爲ASCII鎧甲(.ASC)文件到命令行上當前活動目錄響應。

以下示例將向您介紹如何使用密鑰ID和用戶ID導出公鑰。

pgp --export 0x12345678 
pgp --export "Joe User" 

您可以從ASCII Armor文件(.asc)或文本文件中導入公鑰,對於這兩個進程都是相同的。包含要導入的密鑰的文件必須位於當前目錄中。與導出密鑰一樣,這將在示例中被稱爲(輸入)。如果公鑰和私鑰存在於文件中,它們將被導入。如果正在導入的密鑰已經存在於本地密鑰環中,則密鑰將被合併。導入密鑰從文件:

pgp --import (input) 

PGP命令行迴應如下:喬User.asc:進口鍵{0:鍵輸入爲0×12345678 Joe用戶}

下面的例子將告訴你如何導入鍵從ASCII Armor文件(.asc)和包含PGP密鑰塊的文本文件中獲取。

pgp --import "Joe User.asc" 
pgp --import "PGP Joe.txt" 
+0

這些命令不再工作了:I – dipl0 2017-10-03 19:50:56