Java 创建对称密钥

概要:

现代密码算法的过程非常复杂,加密和解密使用相同的密钥,称为对称密钥算法。Java中已经提供了常用的加密算法,我们不需要了解算法的细节就可以直接使用这些算法实现加密。每一种算法所用的密钥都有所不同,本实例演示如何运用Java中提供的方法创建对称密钥,并通过对象序列化方式保存在文件中。

| |目录

技术要点

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

  • 获取密钥生成器。

  • 密钥保存。

代码实现

package net.xsoftlab.baike;
//创建 对称密钥
import java.io.*;
import javax.crypto.*;
public class Symmetric_key {
	public static void main(String args[]) throws Exception {
		KeyGenerator kg = KeyGenerator.getInstance("DESede");// 获取密钥生成器
		kg.init(168);// 初始化密钥生成器
		SecretKey sk = kg.generateKey();// 生成密钥
		FileOutputStream fos = new FileOutputStream("key1.dat");// 将密钥保存在key1.dat文件中
		ObjectOutputStream b = new ObjectOutputStream(fos);
		b.writeObject(sk);
	}
}

程序解读

1.Java的KeyGenerator类中提供了创建对称密钥的方法。KeyGenerator类预定义了一个静态方法getInstance(),通过它获得KeyGenerator类型的对象。DES是目前最常用的对称加密算法,但安全性较差。在本程序中用于获取密钥生成器的代码如下所示:

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

2.初始化密钥生成器一般是指定密钥的长度。如果不进行初始化,系统会根据算法自动使用默认的密钥长度。在本程序中用于初始化密钥生成器的代码如下所示:

kg.init(168);//初始化密钥生成器

3.通过KeyGenerator类型的对象中generateKey()方法可以获得密钥。其类型为SecretKey类型,可用于以后的加密和解密。在本程序中用于生成密钥的代码如下所示:

SecretKeysk=kg.generateKey();


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消