天天看點

Java KeyStore的類型

源位址:https://blog.csdn.net/wangjun_pfc/article/details/5494257

Java KeyStore的類型

  JKS和JCEKS是Java密鑰庫(KeyStore)的兩種比較常見類型(我所知道的共有5種,JKS, JCEKS, PKCS12, BKS,UBER)。

JKS的Provider是SUN,在每個版本的JDK中都有。

JCEKS的Provider是SUNJCE,1.4後我們都能夠直接使用它。JCEKS在安全級别上要比JKS強,使用的Provider是JCEKS(推薦),尤其在保護KeyStore中的私鑰上(使用TripleDes)。

  PKCS#12是公鑰加密标準,它規定了可包含所有私鑰、公鑰和證書。其以二進制格式存儲,也稱為 PFX 檔案,在windows中可以直接導入到密鑰區,注意,PKCS#12的密鑰庫保護密碼同時也用于保護Key。

  BKS 來自BouncyCastle Provider,它使用的也是TripleDES來保護密鑰庫中的Key,它能夠防止證書庫被不小心修改(Keystore的keyentry改掉1個 bit都會産生錯誤),BKS能夠跟JKS互操作,讀者可以用Keytool去TryTry。

  UBER比較特别,當密碼是通過指令行提供的時候,它隻能跟keytool互動。整個keystore是通過PBE/SHA1/Twofish加密,是以keystore能夠防止被誤改、察看以及校驗。以前,Sun JDK(提供者為SUN)允許你在不提供密碼的情況下直接加載一個Keystore,類似cacerts,UBER不允許這種情況。