1. 程式人生 > >keytool生成公鑰、私鑰

keytool生成公鑰、私鑰

在命令列中輸入“keytool   –genkey”將自動使用預設的演算法生成公鑰和私鑰,並以互動方式獲得公鑰持有者的資訊。其互動過程如下,其中帶下劃線的字元為使用者鍵盤輸入的內容,其他為系統提示的內容

C:/>keytool -genkey 輸入keystore密碼:  123456 您的名字與姓氏是什麼? [Unknown]: Liao Weimin1 您的組織單位名稱是什麼? [Unknown]: Network Center 您的組織名稱是什麼? [Unknown]:   Guangzhou University 您所在的城市或區域名稱是什麼? [Unknown]:   ZB 您所在的州或省份名稱是什麼? [Unknown]: Guangzhou 該單位的兩字母國家程式碼是什麼 [Unknown]:   CN CN=Liao Weimin1, OU=Network Center, O=Guangzhou University, L=ZB, ST=Guangzhou, C=CN 正確嗎? [否]:   是 輸入的主密碼 (如果和 keystore 密碼相同,按回車):   abcdefg C:/>

以上操作將生成一個公鑰和一個私鑰,這裡並未指定使用何演算法,將使用預設的DSA演算法。

同時上述操作將建立一個數字證書,證書中包含了新生成的公鑰和一個名字為“CN=Liao Weimin1, OU=Network Center, O=Guangzhou University, L=ZB, ST=Guangzhou, C=CN”的主體(人或機構)的對應關係。其中“CN=Liao Weimin1, OU=Network Center, O=Guangzhou University, L=ZB, ST=Guangzhou, C=CN”是X.500格式的全名,包含了主體的國家、州、城市、機構、單位和名字。這樣,這個證書將證明相應的公鑰是這個人或機構所擁有的。

以上生成的公鑰、私鑰和證書都儲存在使用者的主目錄中建立一個預設的檔案“.keystore”中。如果是Windows 2000系統,使用者主目錄是c:/ Documents and Setting/使用者名稱。

由於“.keystore”中包含了私鑰,所以是一個需要保密的檔案,因此上述操作提示為該檔案設定一個密碼:“輸入keystore密碼”,這裡因為是第一次使用該金鑰庫,因此輸入的密碼“123456”將成為該預設的金鑰庫的密碼(實際使用時應該設定複雜的口令)。以後再使用這個金鑰庫時必須提供這個口令才可以使用

使用Keytool將數字證書匯出到檔案

★ 例項說明 本例項使用J2SDK提供的keytool工具將指定的證書從金鑰庫匯出為編碼過和沒編碼過兩種格式的檔案。★執行程式

使用keytool的export引數可以將別名指定的證書匯出到檔案,檔名通過file引數指定。如輸入如下命令:

C:/java/ch5>keytool export alias liaoweimin2 -file liaoweimin2.cer 輸入keystore密碼:  123456  

儲存在檔案中的認證

則將預設金鑰庫中的liaoweimin2條目對應的證書匯出到檔案liaoweimin2.cer中。由於命令列中沒有用storepass給出密碼,因此螢幕提示輸入keystore密碼。由於證書中不包含私鑰,因此不需要條目的主密碼