Public-Key

截至 2021 年 Java keytool 的良好非對稱算法

  • December 20, 2021

雖然我預計“最佳”一詞會受到抨擊,但從本質上講,某些算法被廣泛認為比其他算法更好。例如,DES 不再被認為是安全的。

我的特殊問題是我想用來keytool生成一個 Java 密鑰庫,其中包含一個非對稱密鑰,並且不知道要使用什麼算法。這裡有一個列表:https ://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#Cipher ,但它沒有給出建議 - 並且包含上述 DES,所以他們並非都一樣好。

最重要的是,我嘗試了一些“KeyPairGenerator not available”。

我用於密鑰生成的命令是:

keytool -genkey -keyalg RSA -alias server -keystore selfsigned.jks -validity 1000 -keysize 2048

這可能很好,但我實際上並不知道其中一種方法。

DES 是一種對稱密碼。通常,Java 密鑰儲存僅用於/可用於非對稱密鑰對,更準確地說,帶有隨附證書的非對稱密鑰對使其變得有用。是的,RSA 仍然被認為是一種很好的算法,儘管我建議使用 3072 位密鑰對來實現 128 位安全性。

請注意,RSA 不是量子安全的,因此不要將其用於長期(例如 10 年以上)安全性。請注意,預設情況下,Java 僅使用一種非常糟糕的方法從密碼中獲取密鑰,然後使用 3DES 來保護密鑰庫本身,即使使用 PKCS#12 密鑰庫也是如此。因此,請確保您保護文件本身並選擇一個強密碼(即使用密碼生成器生成的密碼,例如密碼數據庫之一)。

引用自:https://crypto.stackexchange.com/questions/97711