溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java實現(xiàn)Applet數(shù)字簽名和認(rèn)證的方法

發(fā)布時間:2020-06-05 17:32:31 來源:億速云 閱讀:498 作者:Leah 欄目:編程語言

  這篇文章給大家分享的是有關(guān)Java實現(xiàn)Applet數(shù)字簽名和認(rèn)證的方法。小編覺得挺實用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于Java實現(xiàn)Applet數(shù)字簽名和認(rèn)證方法的步驟。  

  首先在客戶端使用JRE1.3.0_01(JAVA運行環(huán)境1.3.0.1版本)以取代IE的JVM(JAVA虛擬機(jī)),可以到WWW.JAVA.SUN.COM網(wǎng)站上去下載,下載好了先在客戶端進(jìn)行安裝。在服務(wù)器端的調(diào)用APPLET的HTML文件中也需要將它包含進(jìn)來,以便沒有事先安裝JRE的客戶端下載。

Java實現(xiàn)Applet數(shù)字簽名和認(rèn)證的方法
  具體步驟如下:


  一、服務(wù)器端設(shè)置:


  1、將程序需要用到的各種包文件全部解壓(我這兒要用到WEBLOGIC的JMS包使用命令jar xf weblogicc.jar),然后使用JDK的打包命令將編譯好的監(jiān)控程序.class和剛才解壓的包一起打包到一個包中。(前提我已經(jīng)將監(jiān)控程序和解開的包都放在同一個目錄下了),都是dos狀態(tài)下的命令,具體命令見jdk1.3(1.2)的bin目錄下


  命令如下:


  jar cvf monitor.jar *.class


  此命令生成一個名為monitor.jar的包


  2、為剛才創(chuàng)建的包文件(monitor.jar)創(chuàng)建keystore和keys。其中,keystore將用來存放密匙(private keys)和公共鑰匙的認(rèn)證,alias別名這兒取為monitor。


  命令如下:


  keytool -genkey -keystore monitor.keystore –alias monitor


  此命令生成了一個名為monitor.keystore的keystore文件,接著這條命令,系統(tǒng)會問你好多問題,比如你的公司名稱,你的地址,你要設(shè)定的密碼等等,都由自己的隨便寫。


  3、使用剛才生成的鑰匙來對jar文件進(jìn)行簽名


  命令如下:


  jarsigner -keystore monitor.keystore monitor.jar monitor


  這個命令將對monitor.jar文件進(jìn)行簽名,不會生成新文件。


  4、將公共鑰匙導(dǎo)入到一個cer文件中,這個cer文件就是要拷貝到客戶端的唯一文件 。


  命令如下:


  keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer


  此條命令將生成monitor.cer認(rèn)證文件,當(dāng)然這幾步都有可能問你剛才設(shè)置的密碼。這樣就完成了服務(wù)器端的設(shè)置。這時你就可以將jar文件和keystore文件以及cer文件(我這兒是monitor.jar,monitor.keystore,monitor.cer)拷貝到服務(wù)器的目錄下了,我用的是weblogic6.0,所以就拷貝到C:eawlserver6.0configmydomainapplicationsDefaultWebApp_myserver下的自己建的一個目錄下了。


  二、客戶端:


  1、首先應(yīng)該安裝jre1.3.0_01,然后將服務(wù)器端生成的monitor.cer 文件拷貝到j(luò)re的特定目錄下,我這兒是:


  c:program filesjavasoftjre.3.0_01libsecurity目錄下。


  2.、將公共鑰匙倒入到j(luò)re的cacerts(這是jre的默認(rèn)keystore)


  命令如下:


  keytool -import -alias monitor -file monitor.cer


  -keystore cacerts


  注意這兒要你輸入的是cacerts的密碼,應(yīng)該是changeit,而不是你自己設(shè)定的keystore的密碼。


  3.、修改policy策略文件,在dos狀態(tài)下使用命令 policytool


  系統(tǒng)會自動彈出一個policytool的對話框,如圖4所示,在這里面首先選擇file菜單的open項,打開c:program

filesjavasoftjre.3.0_01libsecurity目錄下的java.poliy文件,然后在edit菜單中選擇Change keystore ,在對話框中new keystore url:中輸入


  file:/c:/program files /javasoft/jre/1.3.0_01/lib/security/cacerts, 這兒要注意反斜杠,在new keystore type 中輸入JKS,這是cacerts的固定格式,然后單擊Add Policy Entry,在出現(xiàn)的對話框中CodeBase中輸入:


  http://URL:7001/*


  其中的URL是服務(wù)器的IP地址,7001是我的weblogic的端口,如果你是在別的應(yīng)用服務(wù)器上比如說是apache,那端口號就可以省略掉。


  在SignedBy中輸入(別名alias):這兒是Monitor然后單擊add peimission按鈕,在出現(xiàn)的對話框中permission中選擇你想給這個applet的權(quán)限,這兒具體有許多權(quán)限,讀者可以自己找資料看看。我這兒就選用allpeimission,右邊的signedBy中輸入別名:monitor

 

  最后保存,在file菜單的save項。


  當(dāng)然你可以看見我已經(jīng)對多個包實現(xiàn)了簽名認(rèn)證。


  這樣客戶端的設(shè)置就完成了。在客戶端用ie運行該applet程序時,會詢問你是不是對該簽名授權(quán),選擇授權(quán)后,包會自動從服務(wù)器下載到本地計算機(jī),而且ie會自動啟動jre,在右下欄中可以看見,相當(dāng)于ie的java控制臺。


  4、調(diào)用applet的html文件


  大家都知道由于java2的安全性,對applet的正常調(diào)用的html文件已經(jīng)不能再使用了,而改為ActiveX類型的調(diào)用。具體的又分ie和nescape的不同寫法,這一些在sun網(wǎng)上都能找到現(xiàn)成的教程。我就不多說了,只是將我的這個小程序為ie寫的的html給大家看看。


  三、消息中心實時監(jiān)控平臺


  其中我要強(qiáng)調(diào)一點,因為applet每一次的改動都需要重新打包簽名,手續(xù)非常繁瑣,所以在具體的實現(xiàn)中要將一些會變化參數(shù)放到html文件中來,傳到applet中去.


  另外一個就是有朋友問我,那這樣不是太麻煩了,每一個客戶端都要進(jìn)行復(fù)雜的dos命令操作,我只能說一目前我的水平只能將一個已經(jīng)做好的客戶端文件cer文件和java.policy以及cacerts文件直接拷貝到客戶端,當(dāng)然這也有缺陷,如果別人的計算機(jī)已經(jīng)有了認(rèn)證,就會丟失。


  另外還有一點優(yōu)化,就是在打包的時候,我這兒只講了把所有要用的涉及到安全性的包和源程序到要打到一個包中。這樣如果包非常大的話,會非常影響下載的速度,如果可以使用本地計算機(jī)的包就好了,這一點jre也做到了,具體的要到控制面板的jre控制臺上去設(shè)置。

  關(guān)于Java實現(xiàn)Applet數(shù)字簽名和認(rèn)證的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI