在Web應用使用Applet有時是一種不錯的選擇,例如在flex中加入特色上傳功能等就可將Applet做為備選方案之一。而Applet需要訪問本地資源時需要得到客戶機器的認可,很自然我們會想到網路知識中的數位簽章(digital signature)。而對java Applet的數位簽章較為方便。
在數位簽章之前將我們編寫的Applet應用匯出jar包,而後主要利用java se中提供的keytool.exe和jarsigner.exe工具,前者用於產生密鑰庫和匯出認證,後者用於對Applet jar進行數位簽章。
進行簽名時,我們可以隨意找個目錄,將jar放入其中,而後從命令視窗進入該檔案夾,依次如所示執行相關命令,填入密碼資訊。執行過程中,我們會發現對應目錄下面會產生一個密鑰庫檔案(store尾綴)和一個認證檔案(cert尾綴)。
中,紅色陰影部分為密鑰庫的名字,尾綴為store;橙色陰影部分為密鑰庫的別名;綠色陰影部分為匯出的認證,尾綴為cert;藍色部分是我們手動匯出並放入相應檔案夾下的jar包。陰影部分讀者可自行命名。
第一次輸入的密鑰密碼,在後續匯出認證和簽名jar包時都需要使用。第一步份產生密鑰時要求填寫的名字、單位等資訊可以自由寫。
簽名完成後,則可以直接將數位簽章後的jar考入項目中使用。第一次載入applet時瀏覽器會要客戶確認該認證(如所示)。客戶機使用者信任後即可訪問本地資源。
本文簡單引入Java數位簽章的工具及使用方式,讀者只需利用第一幅圖的內容即可完成對相應jar包的數位簽章,而後將jar檔案考入項目即可直接應用。更多資訊請參考下文串連。
參考:
數位簽章
http://baike.baidu.com/view/7626.htm
http://en.wikipedia.org/wiki/Digital_signature
Java Applet digital signature
http://www.cnblogs.com/tqsummer/archive/2011/01/19/1939013.html
http://blog.csdn.net/shangdyu/article/details/6992568
http://blog.csdn.net/border1985/article/details/666710
https://www.owasp.org/index.php/Digital_Signature_Implementation_in_Java