java DES加密工具类
2017-08-29 10:48
239 查看
这里是Utils工具类代码,具体加密算法可以自行百度网上说明较多,这里不做介绍
package com.qingyu.pay.common.utils; import javax.crypto.*; import javax.crypto.spec.DESKeySpec; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.InvalidKeySpecException; /** * <p> * des对称加密 * </p> * * @author 905001561 */ public class DESCrypto { /** * 加密 * * @param datasource 待加密数据 * @param key * @return byte数组 */ public static byte[] enCrypto(byte[] datasource, String key) throws InvalidKeyException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, BadPaddingException, IllegalBlockSizeException { SecureRandom random = new SecureRandom(); DESKeySpec desKey = new DESKeySpec(key.getBytes()); // 创建一个密匙工厂,然后用它把DESKeySpec转换成 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey securekey = keyFactory.generateSecret(desKey); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance("DES"); // 用密匙初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, random); // 现在,获取数据并加密 // 正式执行加密操作 return cipher.doFinal(datasource); } /** * 解密 * * @param src * @param key * @return byte数组 */ public static byte[] deCrypt(byte[] src, String key) throws InvalidKeyException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, BadPaddingException, IllegalBlockSizeException { // DES算法要求有一个可信任的随机数源 SecureRandom random = new SecureRandom(); // 创建一个DESKeySpec对象 DESKeySpec desKey = new DESKeySpec(key.getBytes()); // 创建一个密匙工厂 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); // 将DESKeySpec对象转换成SecretKey对象 SecretKey securekey = keyFactory.generateSecret(desKey); // Cipher对象实际完成解密操作 Cipher cipher = Cipher.getInstance("DES"); // 用密匙初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, securekey, random); // 真正开始解密操作 return cipher.doFinal(src); } }
相关文章推荐
- Java 和 C#通用的DES加密工具类的实现
- Java工具类——DES加密和解密工具 I
- 【java工具类】DES加密
- java中常用的工具类(三)连接数据库的综合类,DES加密和解密,Base64,ExcelUtil工具类,
- java中常用的工具类(三)连接数据库的综合类,DES加密和解密,Base64,ExcelUtil工具类,
- Java 通用的DES加密工具类的实现
- Java常用工具类封装——DES加密和解密的工具类
- Java工具类——DES加密和解密工具 II
- 黑马程序员——Java基础知识——集合框架、集合工具类、Arrays
- Java8中的LocalDateTime工具类
- java的des加密
- (二十四)Java工具类Mutable接口提供可变的存储改变值详解
- Java压缩和解压文件工具类ZipUtil
- DES加密与解密的java实现
- Java Hibernate常用方法封装工具类
- (转)FileUtil.java 工具类
- Java之七牛云工具类-yellowcong
- Java-工具类之发送邮件
- java操作文件工具类( 新建、复制、删除、移动文件(夹))
- 共同学习Java源代码--常用工具类--AbstractStringBuilder(三)