码迷,mamicode.com
首页 > 编程语言 > 详细

对称加密-java实现

时间:2017-10-08 15:27:18      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:byte[]类型   final   init   rate   工厂   gen   ini   填充   转换   

主要步骤如下:

1.利用SecretKeyFactory.getInstance("加密算法")创建密钥工厂,加密算法如"DES","AES"等

2.用new DESKeySpec(原始密钥)产生密钥对象,原始密钥是byte[]类型的

3.用密钥工厂的generateSecret(密钥对象)方法把密钥对象转换成规范的密钥对象

4.用new SecureRandom()或者用new IvParameterSpec(向量)生成一个可信任的随机数源

5.用Cipher.getInstance(“加密算法/加密模式/填充模式”)产生加密解密对象

6.用cipher.init(加密解密模型,规范密钥,随机数)初始化加密解密对象

7.用cipher.doFinal(数据)执行加密解密操作

代码如下:

 1    //加密
 2    private  byte[] desEncrypt(byte[] data, byte[] key) throws Exception {
 3         SecureRandom sr = new SecureRandom();
 4         DESKeySpec dks = new DESKeySpec(key);
 5         SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
 6         SecretKey securekey = keyFactory.generateSecret(dks);
 7         Cipher cipher = Cipher.getInstance("DES");
 8         cipher.init(1, securekey, sr);
 9         return cipher.doFinal(data);
10     }
11     //解密
12     private  byte[] desDecrypt(byte[] data, byte[] key) throws Exception {
13         SecureRandom sr = new SecureRandom();
14         DESKeySpec dks = new DESKeySpec(key);
15         SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
16         SecretKey securekey = keyFactory.generateSecret(dks);
17         Cipher cipher = Cipher.getInstance("DES");
18         cipher.init(2, securekey, sr);
19         return cipher.doFinal(data);
20     }

 

对称加密-java实现

标签:byte[]类型   final   init   rate   工厂   gen   ini   填充   转换   

原文地址:http://www.cnblogs.com/zhima-hu/p/7637436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!