雖然JDK1.4將java安全性組件包含在核心庫中,但如果不對jce進行配置,也沒辦法使用jce進行開發。
首先從sun網上下載jce1.2.2(我在網上看到的都是下載一個包,沒用sun預設的),然後把解壓得到的lib裡面的所有jar檔案拷到your_jdk\jre\lib\ext(your_jdk為你的jdk安裝目錄),編輯your_jdk\jre\lib\security\java.policy檔案,在最後加上
grant codeBase "file:${java.home}/lib/ext/sunjce_provider.jar" {
permission java.io.FilePermission
"file:${java.home}/lib/ext/sunjce_provider.jar", "read";
permission java.lang.RuntimePermission
"getProtectionDomain";
permission java.security.SecurityPermission
"putProviderProperty.SunJCE";
};
給sunjce_provider授予存取權限
your_jdk\jre\lib\security\java.security裡面配置了可選的provider類型,這裡用預設配置就行了。(這裡的provider也可由使用者自己用別的廠商提供的包替換,我不是太清楚怎麼作)。
由於我是用Jbuilder開發,必須加上對相關庫的連結。所以就在Project下面的properties的library設定裡面加上對jce1_2_2.jar、sunjce_provider.jar的引用,配置完畢之後,就可以進行JCE相關的程式編寫了。
我用jce寫了一個des加解密的小程式,不知道為什麼,運行起來很慢。感覺是裝載provider花時間。偶N不瞭解為什麼sun會用provider這種安裝組件的方式,很麻煩,也很沒必要。我在eclipse下配置了半天都沒弄好,鬱悶死了。