[英]how to create a properties file for keystore?
我創建了一個密鑰庫並提取了公鑰。 為了使用密鑰庫,我創建了一個keyproperties.properties
文件,但我不確定名為“PRIVATE”的屬性。 無論是路徑密碼還是私鑰密碼,我都很困惑。
.properties
這是我的代碼片段:
public static void main(String[] args)throws Exception {
Properties properties = new Properties();
String path = properties.getProperty("PRIVATE");
KeyStore ks = KeyStore.getInstance("pkcs12", "BC");
ks.load(new FileInputStream(path), keystore_password.toCharArray());
}
使用new Properties()
創建Properties
對象時,尚未在該對象中存儲任何數據。 因此,執行properties.getProperty("PRIVATE")
沒有意義,因為它總是返回null
。
您聲稱已創建.properties
文件,但我沒有看到您在任何位置加載到Properties
對象中:
properties.load(new FileInputStream(readerForProperties));
現在可以使用getProperty()
方法訪問.properties
文件中定義的任何.properties
(請參閱API文檔以了解如何創建此類文件),使用可以讀取該文件的Reader
。
您正在使用path
變量來創建用於加載KeyStore
的FileInputStream
。 在這種情況下,path必須是密鑰庫的路徑。
好像你復制/粘貼了一個我沒有閱讀(或至少:不理解) 文檔的例子。
在我的例子中,我使用"Private"
作為屬性名稱,但這是無關緊要的。 如果您更喜歡將其命名為"pathToKS"
或"keystore"
甚至"banana"
,則可以這樣做。
就我而言,我的.properties
文件如下所示:
PUBLIC c:/examples/signatures/public.cer
ROOTCERT c:/examples/signatures/CACertSigningAuthority.crt
PRIVATE c:/examples/signatures/private.p12
PASSWORD secret
所以在我的情況下, properties.getProperty("PRIVATE")
將返回我的密鑰庫, properties.getProperty("PUBLIC")
將返回我的公鑰, properties.getProperty("ROOTCERT")
將返回證書頒發機構的公鑰, properties.getProperty("PASSWORD")
將返回密鑰庫的密碼以及存儲在與我的公鑰對應的密鑰庫中的私鑰(這些密碼不必相同)。
如果您希望將路徑存儲到密鑰庫,如下所示:
banana c:/examples/signatures/private.p12
你需要這樣做:
String path = properties.getProperty("banana");
在編寫更多代碼之前,請仔細閱讀文檔。 閱讀文檔將為您節省大量時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.