2012-02-06 103 views
0

我產生從下面的代碼私鑰:保護密鑰文件中的

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA","BC"); 
    kpg.initialize(512); 
    KeyPair   pair = kpg.genKeyPair(); 

我要存儲在文件中的私鑰,我希望把密碼的文件來保護it.Is有可能在編程JAVA?

我已經看到openssl命令,它生成密鑰並加密它,放入一個文件並保留該文件的密碼。但我不知道文件存儲在哪裏? 無論如何,我想把一個java程序的密碼...

回答

1

這樣做的標準方法是將密鑰存儲在密鑰庫中。有許多不同的密鑰存儲格式,Java傾向於默認爲JKS(Java密鑰存儲)。這些文件可以保存證書和私鑰,並且通常使用密碼進行保護,用於派生密鑰來加密內容。

如何做到這一點programmaticlly在javadoc中爲Keystore類很好地闡述,您可以在其中找到您可能需要使用的相關類的鏈接。這裏是鏈接:http://docs.oracle.com/javase/6/docs/api/java/security/KeyStore.html

0

有很多潛在的解決方案。但是,最好通過重新使用現有標準來提供服務。

E.g.您應該能夠將密鑰對保存在密碼保護的PKCS#12文件中 - 即使不包含X.509證書也是如此。這將保護您的密鑰對,並且如果您需要在其他系統或其他語言中重複使用它,它將會更具前瞻性。