java jce 授权_【Java加密】(一)JCE配置加密算法强度不受限授权的安装
【前言】Java加解密系列,根據實際開發進度,不定期更新
【下載】在Oracle網站上搜索,?Unlimited Strength Jurisdiction Policy Files這個關鍵字,然后按照所安裝的JDK版本選擇對應的授權文件,比如我的是JDK8,就選擇了這個
【安裝】
下載完這個zip包后,里面有兩個jar包和一個readme.txt文件。
按照README.txt里的說明進行安裝。注意區別開發環境用的JRE在JDK里面,運行環境的JRE是單獨的環境。在我的Mac上,JRE是裝在JDK里的,對應路徑是/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre
進入到授權文件安裝的目錄下
/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/security能夠查看到默認是有local_policy.jar 和 ?US_export_policy.jar的,改個名字保存一下。
然后復制壓縮包里的文件到/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/security目錄下,這樣就安裝完成了。
【驗證】
可以用下面的程序驗證一下
public static void securityVerify() throws Exception {
byte[] data = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
// create a 64 bit secret key from raw bytes
SecretKey key64 = new SecretKeySpec(
new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 },
"Blowfish");
// create a cipher and attempt to encrypt the data block with our key
Cipher c = Cipher.getInstance("Blowfish/ECB/NoPadding");
c.init(Cipher.ENCRYPT_MODE, key64);
c.doFinal(data);
System.out.println("64 bit test: passed");
// create a 192 bit secret key from raw bytes
SecretKey key192 = new SecretKeySpec(
new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 },
"Blowfish");
// now try encrypting with the larger key
c.init(Cipher.ENCRYPT_MODE, key192);
c.doFinal(data);
System.out.println("192 bit test: passed");
System.out.println("Tests completed");
}
如果是默認配置,
返回類似
64 bit test: passed
Exception in thread "main" java.lang.SecurityException:
Unsupported keysize or algorithm parameters
at javax.crypto.Cipher.init(...)
at chapter1.SimplePolicyTest.main(SimplePolicyTest.java:38)
如果是替換后,返回
64 bit test: passed
192 bit test: passed
Tests completed
總結
以上是生活随笔為你收集整理的java jce 授权_【Java加密】(一)JCE配置加密算法强度不受限授权的安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java workerdone_【架构】
- 下一篇: 机器学习自主解决安全威胁离我们还有多远?