首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 加密技術(八):Java 證書體系完整實現——從 KeyStore 生成到證書驗證與數字簽名

     編輯:Java 相關知識

本文系統實現 Java 證書體系,涵蓋密鑰庫創建、自簽名證書導出、公私鑰加解密、證書有效性驗證、數字簽名/驗證全流程。建議先閱讀「Java 加密技術(四)」了解 RSA 算法。

證書制作準備

  1. 生成 KeyStore:
    keytool -genkey -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore
    密碼 123456,生成 zlex.keystore。
  2. 導出自簽名證書:
    keytool -export -keystore d:\zlex.keystore -alias www.zlex.org -file d:\zlex.cer -rfc
    得到 BASE64 編碼 zlex.cer。

CertificateCoder 核心代碼

繼承 Coder(見第 1 篇),實現:

  • getPrivateKey/getPublicKey/getCertificate/getKeyStore:從 KeyStore/證書文件提取鑰材
  • encryptByPrivateKey/decryptByPrivateKey:私鑰加解密
  • encryptByPublicKey/decryptByPublicKey:公鑰加解密
  • verifyCertificate:檢查證書過期/無效(支持 Date 參數)
  • sign:私鑰簽名(Signature.getInstance(x509Certificate.getSigAlgName()))
  • verify:公鑰驗證簽名

測試驗證

CertificateCoderTest 兩測試:

  1. test():公鑰加密「Ceritifcate」→ 私鑰解密,數據一致;驗證證書有效 → 通過
  2. testSign():私鑰加密「sign」→ 公鑰解密,數據一致;私鑰簽名 → 公鑰驗證簽名 → 狀態 true

控制台輸出簽名 BASE64 字符串,驗證成功。至此完成證書驗證體系閉環。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved