des加密算法java
时间: 2023-07-26 08:24:20 浏览: 100
DES是一种对称加密算法,可以使用Java进行实现。以下是一个使用Java实现DES加密的示例代码:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class DESUtil {
public static String encrypt(String plainText, String secretKey) throws Exception {
byte[] key = secretKey.getBytes("UTF-8");
byte[] data = plainText.getBytes("UTF-8");
Cipher cipher = Cipher.getInstance("DES");
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "DES");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] encryptedData = cipher.doFinal(data);
return Base64.getEncoder().encodeToString(encryptedData);
}
public static String decrypt(String encryptedText, String secretKey) throws Exception {
byte[] key = secretKey.getBytes("UTF-8");
byte[] encryptedData = Base64.getDecoder().decode(encryptedText);
Cipher cipher = Cipher.getInstance("DES");
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "DES");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] decryptedData = cipher.doFinal(encryptedData);
return new String(decryptedData, "UTF-8");
}
}
```
示例代码中使用了Java标准库中的`javax.crypto`包中的`Cipher`类实现加解密。`encrypt`方法用于加密,`decrypt`方法用于解密。`secretKey`参数为密钥,`plainText`参数为待加密的明文,`encryptedText`参数为待解密的密文。在示例代码中使用了Base64编码将加密后的字节流转换为字符串,便于传输和存储。需要注意的是,DES算法密钥长度为8个字节,不足8个字节时需要进行填充。
阅读全文