Java DES加密/解密方法是一种对称加密算法,全称为Data Encryption Standard(数据加密标准)。它使用相同的密钥进行加密和解密,适用于保护敏感数据的传输和存储。
DES算法将明文数据分成64位的数据块,并通过一系列的置换、替换和移位操作来进行加密。加密过程中,密钥被用于生成一系列的子密钥,这些子密钥用于不同轮次的加密操作。解密过程与加密过程相反,使用相同的密钥和算法进行操作,可以还原出原始的明文数据。
DES加密/解密方法的优势包括:
Java中可以使用javax.crypto包提供的Cipher类来实现DES加密/解密方法。以下是一个示例代码:
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class DESUtil {
private static final String ALGORITHM = "DES";
public static String encrypt(String plainText, String key) throws Exception {
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(StandardCharsets.UTF_8));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(encryptedBytes);
}
public static String decrypt(String encryptedText, String key) throws Exception {
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(StandardCharsets.UTF_8));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] encryptedBytes = Base64.getDecoder().decode(encryptedText);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
return new String(decryptedBytes, StandardCharsets.UTF_8);
}
}
使用示例:
String plainText = "Hello, World!";
String key = "12345678";
String encryptedText = DESUtil.encrypt(plainText, key);
System.out.println("Encrypted Text: " + encryptedText);
String decryptedText = DESUtil.decrypt(encryptedText, key);
System.out.println("Decrypted Text: " + decryptedText);
推荐的腾讯云相关产品:腾讯云密钥管理系统(KMS)提供了密钥的安全存储和管理,可以用于保护DES密钥的安全性。详情请参考腾讯云KMS产品介绍:https://cloud.tencent.com/product/kms
领取专属 10元无门槛券
手把手带您无忧上云