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密钥,然后使用该密钥对明文进行加密,最后对密文进行解密。注意,为了简化示例,我们使用了固定的密钥和明文,实际应用中需要根据需求选择合适的密钥和明文。
发表评论