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

来源:互联网 发布:网络高清摄像机哪家好 编辑:程序博客网 时间:2024/05/21 07:49

对称密钥算法:加密和解密使用相同的密钥。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.datFileOutputStream 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();//生成密钥


0 0