DES算法的java实现
时间: 2023-11-10 11:57:38 浏览: 106
DES算法是一种对称加密算法,它采用了分组加密的方式,将明文分成64位大小的数据块,然后通过一系列的加密操作将其转换为密文。以下是一种简单的Java实现:
```java
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import java.security.SecureRandom;
public class DESUtils {
private static final String ALGORITHM = "DES";
/**
* 加密
* @param data 待加密的数据
* @param key 密钥
* @return 加密后的数据
* @throws Exception
*/
public static byte[] encrypt(byte[] data, byte[] key) throws Exception {
// 生成一个DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);
// 生成一个密钥工厂对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
// 通过密钥工厂获取密钥对象
SecretKey secretKey = keyFactory.generateSecret(dks);
// 生成一个随机数生成器对象
SecureRandom random = new SecureRandom();
// 生成一个Cipher对象
Cipher cipher = Cipher.getInstance(ALGORITHM);
// 初始化Cipher对象,设置为加密模式
cipher.init(Cipher.ENCRYPT_MODE, secretKey, random);
// 加密数据
byte[] encryptedData = cipher.doFinal(data);
// 返回加密后的数据
return encryptedData;
}
/**
* 解密
* @param data 待解密的数据
* @param key 密钥
* @return 解密后的数据
* @throws Exception
*/
public static byte[] decrypt(byte[] data, byte[] key) throws Exception {
// 生成一个DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);
// 生成一个密钥工厂对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
// 通过密钥工厂获取密钥对象
SecretKey secretKey = keyFactory.generateSecret(dks);
// 生成一个随机数生成器对象
SecureRandom random = new SecureRandom();
// 生成一个Cipher对象
Cipher cipher = Cipher.getInstance(ALGORITHM);
// 初始化Cipher对象,设置为解密模式
cipher.init(Cipher.DECRYPT_MODE, secretKey, random);
// 解密数据
byte[] decryptedData = cipher.doFinal(data);
// 返回解密后的数据
return decryptedData;
}
public static void main(String[] args) throws Exception {
String data = "Hello, world!";
String key = "12345678";
// 加密
byte[] encryptedData = encrypt(data.getBytes(), key.getBytes());
System.out.println("加密后的数据:" + new String(encryptedData));
// 解密
byte[] decryptedData = decrypt(encryptedData, key.getBytes());
System.out.println("解密后的数据:" + new String(decryptedData));
}
}
```
阅读全文
相关推荐















