java怎么实现des加密解密

   2025-02-15 3470
核心提示:Java 中可以使用 javax.crypto 包来实现 DES 加密和解密。下面是一个例子,展示了如何用 DES 加密和解密字符串:import javax.cr

Java 中可以使用 javax.crypto 包来实现 DES 加密和解密。

下面是一个例子,展示了如何用 DES 加密和解密字符串:

import javax.crypto.*;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.SecretKeySpec;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.security.spec.InvalidKeySpecException;import java.util.Base64;public class DESExample {    public static void main(String[] args) {        String originalText = "Hello, World!";        String secretKey = "SecretKey";        try {            // 创建一个 DES 密钥            SecretKey key = generateKey(secretKey);            // 加密字符串            String encryptedText = encrypt(originalText, key);            System.out.println("Encrypted Text: " + encryptedText);            // 解密字符串            String decryptedText = decrypt(encryptedText, key);            System.out.println("Decrypted Text: " + decryptedText);        } catch (Exception e) {            e.printStackTrace();        }    }    // 生成一个 DES 密钥    private static SecretKey generateKey(String secretKey) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException {        DESKeySpec desKeySpec = new DESKeySpec(secretKey.getBytes());        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");        return keyFactory.generateSecret(desKeySpec);    }    // 使用给定的密钥加密字符串    private static String encrypt(String text, SecretKey key) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {        Cipher cipher = Cipher.getInstance("DES");        cipher.init(Cipher.ENCRYPT_MODE, key);        byte[] encryptedBytes = cipher.doFinal(text.getBytes());        return Base64.getEncoder().encodeToString(encryptedBytes);    }    // 使用给定的密钥解密字符串    private static String decrypt(String encryptedText, SecretKey key) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {        Cipher cipher = Cipher.getInstance("DES");        cipher.init(Cipher.DECRYPT_MODE, key);        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));        return new String(decryptedBytes);    }}

此代码会输出以下结果:

Encrypted Text: 2vqyQ/J1sIc=Decrypted Text: Hello, World!

请注意,上述代码只是一个示例,并没有处理加密和解密的异常情况。在实际使用中,建议处理可能的异常情况,以保证代码的健壮性。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言