您的位置:首页 > 编程语言 > Java开发

Java安全笔记(二)-创建对称密钥

2017-01-28 23:10 302 查看
对称密钥算法:加密和解密使用相同的密钥。Java中已经提供了常用的加密算法。如下程序将展示JAVA中提供的方法创建对称密钥,并通过对象序列化的方式保存在文件中

创建对称密钥的技术要点如下

1获取密钥生成器

                2初始化密钥生成器

3密钥生成

4密钥以序列化的形式保存在key1.dat中

package ende;
//创建对称密钥
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class Symmetric_key {
public static void main(String[] args) throws Exception {
KeyGenerator kg=KeyGenerator.getInstance("DESede"); //获取密钥生成器
kg.init(168);// 初始化密钥生成器
SecretKey sk=kg.generateKey();//生成密钥
//将密钥保存在key1.dat
FileOutputStream fos=new FileOutputStream("C:\\Users\\Administrator\\Desktop\\key1.dat");
ObjectOutputStream b=new ObjectOutputStream(fos);
b.writeObject(sk);
}
}


源程序解读

1.Java的KeyGenerator类中提供了创建对称密钥的方法。KeyGenerator类预定义了一个静态方法getInstance(),通过它获得KeyGenerator类型的对象。DES是目前最常用的对称加密算法,但是安全性较差。

KeyGenerator kg=KeyGenerator.getInstance("DESede"); //获取密钥生成器


2.初始化密钥生成器一般是指定密钥的长度。如果不进行初始化,系统会根据算法自动使用默认额密码长度,应该为64位(实际密钥长度56位,加8位奇偶校验位)

kg.init(168);// 初始化密钥生成器
3.通过KeyGenerator类型的对象中generateKey()方法可以获得密钥。其类型为SecretKey类型,可用于以后的加密和解密。
SecretKey sk=kg.generateKey();//生成密钥
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息