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");
相关文档:
脚本变量是使用 var 或 def 关键字声明的。
二者之间的区别在于:在脚本的整个生命周期内都可以为 var 变量赋予新值,
而 def 变量在被首次赋予新值后将保持不变;
def numOne = 100;
def numTwo = 2;
var result;
add();
subtract();
multiply();
divide();
function add() {
result = numOne + numTwo; ......
1、对象是按引用传递的---带"="号的赋值操作
2、Java 应用程序有且仅有的一种参数传递机制,即按值传递---由"函数调用"引起的
3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本
4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值 的副本
5、注 ......
原始URL: http://blog.donews.com/dukejoe/archive/2010/04/28/1575574.aspx
package cn.com.hrbb.samples;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/**
*
* 演示使用 JACOB : Java COM Bridge 操纵 Word 文档
*
* 作者:高宏伟(DukeJoe)
......
Nutz Java 编码规范 (V1.0) By:zozoh 0. 规范的规范 1. 代码格式 2.1 包 2.2 类和接口 2.3 成员变量 2.4 常量 2.5 局部变量 2.6 成员函数和静态函数 ......
MySql的时间类型有 Java中与之对应的时间类型
date ......