首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java DES加密/解密方法

Java DES加密/解密方法是一种对称加密算法,全称为Data Encryption Standard(数据加密标准)。它使用相同的密钥进行加密和解密,适用于保护敏感数据的传输和存储。

DES算法将明文数据分成64位的数据块,并通过一系列的置换、替换和移位操作来进行加密。加密过程中,密钥被用于生成一系列的子密钥,这些子密钥用于不同轮次的加密操作。解密过程与加密过程相反,使用相同的密钥和算法进行操作,可以还原出原始的明文数据。

DES加密/解密方法的优势包括:

  1. 安全性:DES算法采用对称加密,加密和解密使用相同的密钥,保证了数据的机密性。
  2. 快速性:DES算法的加密和解密速度较快,适用于对大量数据进行加密和解密的场景。
  3. 灵活性:DES算法可以通过调整密钥长度和加密轮数来增强安全性和灵活性。

Java中可以使用javax.crypto包提供的Cipher类来实现DES加密/解密方法。以下是一个示例代码:

代码语言:java
复制
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);
    }
}

使用示例:

代码语言:java
复制
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

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券