继续 漫谈Java加密技术(一)
HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。
通过java代码实现如下:
/** *//**
* 初始化HMAC密钥 http://www.guihua.org http://www.feng123.com
*
* @return
* @throws Exception
*/
public static String initMacKey() throws Exception {
KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);
SecretKey secretKey = keyGenerator.generateKey();
return encryptBASE64(secretKey.getEncoded());
}
/** *//**
* HMAC加密
*
* @param data
* @param key
* @return
* @throws Exception
*/
public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return mac.doFinal(data);
}
给
相关文档:
JAVA中 int 类型要转化成 String 类型,可以有三种方式,分别是:
(1) String.valueOf(i)
(2) Integer.toString(i)
(3) i+""
其中:第二种是效率最高的,耗时是其他两种的一半。
String.valueOf(i):891
Integer.toString(i):468
i+"":844
......
1.垃圾回收的必要性
当对象被创建时,会在Java虚拟机中分配一块内存(内存分配-》默认值-》初始化值),在JVM的生命周期中,Java程序在不断地创建对象,如果这些对象的内存不被及时回收,会导致内存空间不足,因此要有一种措施及时回收无用对象的内存,保证内存能够被重复利用。
& ......
封装:
1.说白了就是保护我们对象中的隐私使其对 外部不可见。
2.一般情况下,类中的属性设为private。
3.通过getter和setter方法去赋值和取值。
&nbs ......
在Eclipse中我们经常会向主方法注入参数,以提供给程序的运行,其方法如下:
1.点运行按钮(或右击要运行的类)
2.点击Open Run Dialog..
3.选中左侧需要运行的类
4.在右侧选中Argument
5.在Program Argument中输入你要注入到主函数中的参数
6.点击运行(Run),就可以运行了。。。 ......
最近在写java测试程序的时候突然遇到了一个问题:java默认包中的public类是不能在其他包中直接调用的
首先,总结一下默认包中类的使用范围,java默认包中的类可以实例化其它包中的public类,但是其它包中的类是不能显式实例化默认包中的类这个特性在JDK1.4以后的版本成立;
& ......