製作Java Applet簽名驗證

1.keytool -genkey -dname "cn=BeanSoft Studio, ou=Java Software, o=BeanSoft Studio, c=China" -alias beansoft -keypass beansoft -storepass beansoft -validity 365 -keystore .\beansoft

這段命令將會創建一個數字文件放在當前目錄的二進制文件beansoft中。該證書的別名是beansoft(通過-alias指定),密鑰的密碼是beansoft(-keypass命令指定),存儲密鑰的文件密碼也是beansoft(- storepass命令指定),證書的有效期是365天(通過-validity指定)
2.檢查下這份證書文件的內容,執行下面的命令:

keytool -list -keystore .\beansoft -storepass beansoft

會輸出信息:

Keystore 類型: JKS

Keystore 提供者: SUN


您的 keystore 包含 1 輸入


beansoft, 2008-5-7, PrivateKeyEntry,

認證指紋 (MD5): 16:15:A0:47:92:96:29:96:93:5D:F0:76:F7:D0:2C:84

。這說明證書沒有問題。
3.將Applet的類文件打包成jar文件,名爲applets.jar,放在項目的根目錄下。接着就進入最關鍵的,對JAR文件進行簽名了,鍵入下列命令:

jarsigner -verbose -keystore .\beansoft applets.jar beansoft
接着提示信息爲:

輸入密鑰庫的口令短語:beansoft按下回車,即可看到簽名過程:

正在添加: META-INF/MANIFEST.MF

正在添加: META-INF/BEANSOFT.SF

正在添加: META-INF/BEANSOFT.DSA

正在添加: applets/

正在簽名: applets/FileOperationApplet.class

正在簽名: applets/LifeCycleApplet.class

正在簽名: applets/MyApplet.class

正在簽名: applets/usb.jpg

可以看到META-INF目錄下將會多出兩個數字指紋文件,運行的時候JVM將會和類文件進行對比,確保文件沒被人篡改過

4.好了,現在的applets.jar已經今非昔比了,它是個被簽名過的JAR,怎麼使用它呢?需要在它所在的同一目錄下,即項目根目錄下,新建一個HTML文件,代碼清單如下:

FileOperationAppletSigned.html

<html>

<body>

<applet code=applets.FileOperationApplet.class archive="applets.jar" width="200" height="200" >

</applet>

</body>

</html>

唯一的不同,就是多了粗斜體的archive="applets.jar"這句話。

好了,最激動人心的時刻到來了,請用瀏覽器打開這個網頁,會看到一個安全提示。點擊運行按鈕,即可看到正確的執行了操作,在用戶的C盤上創建了一個文件!很好,我們可以爲所欲爲了,像寫普通Java應用那樣來寫Applet了!如果點擊取消按鈕,那很自然的無法創建文件,用戶擁有選擇權,當然,如果是企業的客戶,自然都是讓他們選擇運行按鈕。其實通過這裏讀者也可以注意到,現在好多網站(例如視頻分享的網站等),都會提示您下載一些插件提供增強的功能,然而,他們的數字證書和這裏的一樣,都是自己造的(其實就是僞造),所以,裝完後並不能保證是否夾雜了病毒或者惡意代碼,所以讀者上網時千萬要謹慎識別,不要隨意點擊在線安裝或者運行軟件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章