JAVA实现DES加密
2015-01-30 15:11
281 查看
数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。
DES
使用一个 56 位的密钥以及附加的
8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大
64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES
使用 16 轮循环,使用异或,置换,代换,移位操作四种基本运算。
DES
使用一个 56 位的密钥以及附加的
8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大
64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES
使用 16 轮循环,使用异或,置换,代换,移位操作四种基本运算。
private final static String DES = "DES";
/** * Description 根据键值进行加密 * @param data * @param key 加密键byte数组 * @return * @throws Exception */ private static byte[] encrypt(byte[] data, byte[] key) throws Exception { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance(DES); // 用密钥初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); return cipher.doFinal(data); } /** * Description 根据键值进行解密 * @param data * @param key 加密键byte数组 * @return * @throws Exception */ private static byte[] decrypt(byte[] data, byte[] key) throws Exception { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成解密操作 Cipher cipher = Cipher.getInstance(DES); // 用密钥初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, securekey, sr); return cipher.doFinal(data); }
//test
String key = "!#aaaa"; String data="hello";
System.out.println(key.length()); byte[] data1 = encrypt(data.getBytes(), key.getBytes()); System.err.println(); System.err.println(new String(decrypt(data1, key.getBytes())));
相关文章推荐
- JAVA实现DES加密和解密软件
- JAVA实现DES加密
- DES加密解密字符串的JAVA实现(lp)
- JAVA实现DES加密
- Java实现文件的DES加密与解密算法
- [原创]Java实现PKCS7填充的DES加密(修订版)
- JAVA实现DES加密实现详解
- paip.提升安全性----Des加密 java php python的实现总结
- paip.提升安全性----Des加密 java php python的实现总结
- java实现DES加密与解密,md5加密
- 使用java实现真实数据DES加密(java源代码)
- Java 和 C#通用的DES加密工具类的实现
- C#用DES加密JAVA用DES解密,JAVA用DES加密C#用DES解密的实现
- JAVA实现DES加密实现详解
- JAVA实现DES加密
- JAVA实现DES加密
- 基于java数组的DES加密、解密的算法实现
- JAVA实现DES加密 .
- JAVA实现DES加密
- java 实现 DES加密 解密算法