Java AES对称加密算法是一种常用的加密算法,它使用相同的密钥进行加密和解密。在Java中,可以使用`javax.crypto`包中的`Cipher`类来实现AES加密和解密。

以下是一个简单的Java AES加密和解密示例:

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class AESDemo {
    public static void main(String[] args) throws Exception {
        // 生成密钥
        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
        keyGenerator.init(128);
        SecretKey secretKey = keyGenerator.generateKey();
        // 加密
        String plainText = "这是一个明文";
        byte[] encryptedBytes = encrypt(plainText, secretKey);
        System.out.println("加密后的密文: " + Base64.getEncoder().encodeToString(encryptedBytes));
        // 解密
        byte[] decryptedBytes = decrypt(encryptedBytes, secretKey);
        System.out.println("解密后的明文: " + new String(decryptedBytes, StandardCharsets.UTF_8));
    }
    public static byte[] encrypt(String plainText, SecretKey secretKey) throws Exception {
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        return cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));
    }
    public static byte[] decrypt(byte[] encryptedBytes, SecretKey secretKey) throws Exception {
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        return cipher.doFinal(encryptedBytes);
    }
}

在这个示例中,我们首先生成一个AES密钥,然后使用该密钥对明文进行加密,最后对密文进行解密。注意,为了简化示例,我们使用了固定的密钥和明文,实际应用中需要根据需求选择合适的密钥和明文。


 您阅读本篇文章共花了: