继续 漫谈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);
}
给
相关文档:
多线程环境中,比较掌握的事情之一就是如何返回线程的信息。因为run和start方法并不返回任何值。
假设现在有两个线程,主线程和一个子线程,子线程读文件,主线程需要对文件的结果进行操作,当然,最简单的方法就是读文件和处理读出的文件全部都在主线程中进
行。
......
一. Incident
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
......
代码如下:
List <?> lines = FileUtils.readLines(new File(fileName));
for(Object line : lines){
}
问题:
1.List <?> 表示什么意思?
2.for括号内部的表达式是什么意思?
1、范型。表示lines中可保存任意类型
2、for-each 语句,作为for(int i=0;i<lines.length;i++){
Object line=lines.get(i ......
java试题
http://202.201.112.11/jpk/apply/teacher/preface/53/test123/test3/exam.htm
1.接口中方法的前面有哪些修饰符
访问权限 返回值类型 是否静态 是否抽象
2.以下哪个为真
Interger a = new Interger(9);
Interger b = new Interger(9);
Long c = New Long(9)
-----
&nbs ......
豆豆网 技术应用频道 2009年06月10日 【字号:小中大】 收藏本文
JProfiler memcached JavaCC EclEmma Jester Java加密技术(七)。
ECC
ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。在软件注册 ......