加密解密算法java实现(2)—DES
来源:互联网 发布:2015中国进口粮食数据 编辑:程序博客网 时间:2024/06/12 20:01
1、maven依赖
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency>2、java代码
/** * DES加密解密 * 原文相同,密钥相同,DES加密后的密文是一样的 */ public class DESUtil { /** * DES算法密钥 * 个数为8的倍数 */ private static final byte[] DES_KEY = {125, -120, 52, 45, 98, -78, 85, -12, 45, -12, 69, 51, 30, -122, 45, -33}; private static final String ALGORITHM_DES = "DES"; private static final String TRANSFORMATION = "DES"; /** * 加密 * @param source * @return * @throws Exception */ public static String encode(String source) throws Exception { SecureRandom sr = new SecureRandom();//DES算法要求有一个可信任的随机数源 DESKeySpec desks = new DESKeySpec(DES_KEY); SecretKeyFactory factory = SecretKeyFactory.getInstance(ALGORITHM_DES);//创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象 SecretKey secretKey = factory.generateSecret(desks); Cipher cipher = Cipher.getInstance(TRANSFORMATION);//加密对象 cipher.init(Cipher.ENCRYPT_MODE, secretKey, sr); String result = BASE64Util.encodeByte(cipher.doFinal(source.getBytes()));//加密,并把字节数组编码成字符串 return result; } /** * 解密 * @param source * @return * @throws Exception */ public static String decode(String source) throws Exception { SecureRandom sr = new SecureRandom();//DES算法要求有一个可信任的随机数源 DESKeySpec desks = new DESKeySpec(DES_KEY); SecretKeyFactory factory = SecretKeyFactory.getInstance(ALGORITHM_DES);//创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象 SecretKey secretKey = factory.generateSecret(desks); Cipher cipher = Cipher.getInstance(TRANSFORMATION);//解密对象 cipher.init(Cipher.DECRYPT_MODE, secretKey, sr); String result = new String(cipher.doFinal(BASE64Util.decodeToByte(source)));//把字符串解码为字节数组,并解密 return result; } /** * 示例 * 支持中文 空格 字符 * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String source = "12dfefDKLJKLKL464d中文f465as43f1a3 f46e353D1F34&*^$E65F46EF43456abcd54as56f00ef"; String encodeData = DESUtil.encode(source);//先加密 System.out.println("加密后:\n" + encodeData); String decodeData = DESUtil.decode(encodeData);//解密 System.out.println("解密后:\n" + decodeData); System.out.println("解密后是否和原文相同:" + source.equals(decodeData)); } }
阅读全文
0 0
- 加密解密算法java实现(2)—DES
- 加密解密算法java实现(2)—DES
- DES加密解密算法JAVA实现
- java DES加密,解密算法实现
- DES加密解密算法Java实现
- Java实现DES加密解密算法
- Java加密解密算法-DES加密解密
- Java 实现DES加密解密
- DES加密解密->java实现
- java DES加密解密实现
- Java实现DES加密解密
- JAVA实现的DES加密解密算法(源程序)(lp)
- 基于java的DES加密解密算法实现
- 基于java数组的DES加密、解密的算法实现
- Java实现文件的DES加密与解密算法
- 用JAVA实现的DES加密解密算法
- java加密解密——MD5算法和DES算法
- DES加密与解密算法的实现
- HDOJ1002
- Linux查找含有某字符串的所有文件
- HBase命令行操作
- HotSpot虚拟机对象探秘
- 基于untiy使用vuforia实现图片识别
- 加密解密算法java实现(2)—DES
- java面向对象编程
- "doc", "docx", "xls", "xlsx", "ppt", "pptx",txt。等文件转化为pdf
- poj 3286 数位统计
- 283. Move Zeroes
- 学习笔记(一)NumPy库
- 为什么匿名内部类和局部内部类只能访问final变量
- php 浮点数比较方法
- 启动错误分析Can't find PMIC:PFUZE100