在前一篇文章 “java 安全(一)” 中講述瞭如何通過 java 自帶的工具進行密鑰庫和證書 的生成以及對要傳輸的文件進行簽名和校驗的過程,這裏繼續闡述一下如何通過jdk的接口來進行程序上的簽名和驗證工作。 這裏仍然以Susan 和 Ray 兩人爲例,並使用了 keytool來生成密鑰庫。
1: 生成密鑰庫文件
keytool -genkey -alias signFiles -keypass kpi135 -keystore susanstore -storepass ab987c
2: Susan 編寫程序生成 證書,並對要傳輸的文件進行簽名
編譯執行程序,
D:/study/security/demo_3/susan>javac GenSig.java
D:/study/security/demo_3/susan>java GenSig susanstore ab987c signFiles kpi135 data
即 生成證書文件。這裏可以通過 D:/study/security/demo_3/susan>keytool -list -v -keystore susanstore 命令來查看密鑰庫信息比如證書類型(Keystore 類型: JKS),和證書指紋等信息。
3: 接受方Ray 接受到 發送方 Susan 傳輸過來的 簽名文件,證書,數據文件編寫驗證程序進行校驗
編譯執行程序,
D:/study/security/demo_3/ray>javac VerSig.java
D:/study/security/demo_3/ray>java VerSig suecert sig data
signature verifies: true
即可看到驗證是否通過結果