Java AES 加密解密工具类实现教程

流程图

pie
title Java AES 加密解密工具类实现流程
"生成密钥" : 20
"加密数据" : 30
"解密数据" : 30
"测试" : 20

步骤

步骤 描述 代码示例
1 生成密钥 生成一个密钥并将其存储起来
2 加密数据 使用生成的密钥对数据进行加密
3 解密数据 使用相同的密钥对加密后的数据进行解密
4 测试 验证加密解密功能是否正常

代码实现

生成密钥

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class AESUtils {
    public static SecretKey generateKey() throws Exception {
        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(128); // 生成128位的AES密钥
        return keyGen.generateKey();
    }
}

加密数据

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class AESUtils {
    public static String encrypt(String data, SecretKey key) throws Exception {
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] encryptedData = cipher.doFinal(data.getBytes());
        return Base64.getEncoder().encodeToString(encryptedData);
    }
}

解密数据

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class AESUtils {
    public static String decrypt(String encryptedData, SecretKey key) throws Exception {
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE, key);
        byte[] data = Base64.getDecoder().decode(encryptedData);
        byte[] decryptedData = cipher.doFinal(data);
        return new String(decryptedData);
    }
}

测试

import javax.crypto.SecretKey;

public class Main {
    public static void main(String[] args) throws Exception {
        // 生成密钥
        SecretKey key = AESUtils.generateKey();
        
        // 加密数据
        String data = "Hello, World!";
        String encryptedData = AESUtils.encrypt(data, key);
        
        // 解密数据
        String decryptedData = AESUtils.decrypt(encryptedData, key);
        
        // 验证
        System.out.println("原始数据:" + data);
        System.out.println("加密后的数据:" + encryptedData);
        System.out.println("解密后的数据:" + decryptedData);
    }
}

总结

通过以上步骤,你可以实现一个简单的 Java AES 加密解密工具类。首先生成密钥,然后使用密钥对数据进行加密和解密,最后进行测试验证功能是否正常。希望这篇文章能帮助你快速掌握这一技能,加油!