java加密与解密(一)
jdk安全强度设置:
http://java.sun.com/javase/downloads/index.jsp中的Other Downloads下载
解压zip,
用其中的两个jar包覆盖jdk6下\%JDK_HOME%\jre\lib\security目录下的jar包
jre目录下也作相同配置
然后通过代码段
try {
KeyGenerator kg = KeyGenerator.getInstance("AES");
kg.init(256);
SecretKey secretKey = kg.generateKey();
byte[] key = secretKey.getEncoded();
System.out.println("ok");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
对调整后的系统权限进行验证,执行顺利,表示生效,如果不进行调整,由于出口限制,密钥不支持256位.
MD4,IDEA等加密算法,java6不支持,可以通过在JRE环境中配置开源组件包Bounce Castle,加入对应的
提供者,获得相应的算法支持.
从http://www.bouncycastle.org/latest_releases.html
下载 bcprov-jdk16-145.jar ,bcprov-ext-jdk16-145.jar
扩充算法支持的两种方式
1配置方式:
修改配置文件,\%JDK_HOME%\jre\lib\security\java.security中加入
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
然后把bcprov-ext-jdk16-145.jar放入\%JDK_HOME%\jre\lib\ext目录下
jre目录下也作相同配置
2调用方式:
把bcprov-jdk16-145.jar导入工程,接着在程序中要导入两个类
java.security.Security
org.bouncycastle.jce.provider.BouncyCastleProvider
接着在初始化工厂,密钥生成器等引擎类时,采用如下方式
Security.addProvider(new BouncyCastleProvider())
或者在初始化工厂,密钥生成器等引擎类时,采用如下方式
MessageDigest md = MessageDigest.getInstance("MD4","BC");
相关文档:
昨天看到这样一篇帖子,讨论类加载顺序的,也可以说是初始化顺序的,今天早上找不到了,本来想回复的,现在自己写博客回复了,呵呵
public class Singleton {
private static Singleton obj = new Singleton();
public static int counter1 ;
public static int counter2 = 0;& ......
从jdk1.5开始,Java中开始支持范型了。范型是一个很有用的编程工具,给我们带来了极大的灵活性。在看了《java核心编程》之后,我小有收获,写出来与大家分享。
所谓范型,我的感觉就是,不用考虑对象的具体类型,就可以对对象进行一定的操作,对任何对象都� ......
System.out.println(2.00 -1.10);//0.8999999999999999
上面的计算出的结果不是0.9,而是一连串的小数。问题在于1.1 这个数字不能被精确表示
为一个double,因此它被表示为最接近它的double 值,该程序从2 中减去的就是这个值,
但这个计算的结果并不是最接近0.9 的double值。
一般地说,问题在于并不是所有的小数都可� ......
三步:
一、自定义标签实现类: myTags.java;
二、自定义标签库文件(TLD): myTags.tld;
三、一个JSP页面:随便写了;
首先myTags.java
package com.tags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class myTags extends ......
用的是Commons上传组件,下载地址:Commons
网上找的小例子改的,修改了部分错误。
1,FileUpload.java
package com.fileupload;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.List;
import ja ......