java des加解密代码
时间: 2023-05-16 16:01:23 浏览: 132
Java中的DES加解密功能由JCE(Java Cryptography Extension)实现。首先需要导入JCE库,代码如下:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;
其中,`Cipher`类提供加密和解密方法,`KeyGenerator`类用于生成密钥,`SecretKey`类表示密钥,`SecretKeySpec`类表示密钥的规范,`SecureRandom`类提供随机数生成功能。
加密代码如下:
public static byte[] encryptDES(byte[] plainData, byte[] keyData) throws Exception {
SecretKeySpec keySpec = new SecretKeySpec(keyData, "DES");
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec, new SecureRandom());
return cipher.doFinal(plainData);
}
其中,`plainData`为待加密数据,`keyData`为密钥,`"DES/ECB/PKCS5Padding"`表示采用DES算法、ECB加密模式和PKCS5Padding填充方式。
解密代码如下:
public static byte[] decryptDES(byte[] cipherData, byte[] keyData) throws Exception {
SecretKeySpec keySpec = new SecretKeySpec(keyData, "DES");
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec, new SecureRandom());
return cipher.doFinal(cipherData);
}
其中,`cipherData`为密文数据,其余参数的含义与加密代码相同。
需要注意的是,DES算法已经被认为是不安全的,而且只能处理8字节的数据块,因此在实际应用中应尽量采用更安全的加密算法,如AES。
阅读全文