UUID

HTTP 请求

加密/解密

Common 常用模块

Reflection 反射

Input/Output 输入/输出

AesCrypto 教程

本教程提供了 AesCrypto 类的概述,该类是 lightweight-component/aj-util 库的一部分。AesCrypto 提供了一系列使用 AES、DES、3DES 和 PBE 等算法进行对称加密和解密的实用方法。

简介

AesCrypto 类提供了使用各种对称加密算法对数据进行加密和解密的方法。它实现了单例模式,并提供了一套完整的安全数据加密工具。

方法

1. getInstance()

返回 AesCrypto 类的单例实例。

示例:

AesCrypto crypto = AesCrypto.getInstance();

2. getSecretKey(String algorithmName, SecureRandom secure)

使用提供的安全随机生成器为指定算法生成密钥,并将其作为 Base64 编码的字符串返回。

示例:

SecureRandom secureRandom = new SecureRandom();
String secretKey = AesCrypto.getSecretKey("AES", secureRandom);

3. DES_encode(String res, String key)DES_decode(String res, String key)

使用 DES 算法加密或解密数据。

示例:

AesCrypto crypto = AesCrypto.getInstance();
String encrypted = crypto.DES_encode("你好,世界!", "mySecretKey");
String decrypted = crypto.DES_decode(encrypted, "mySecretKey");

4. AES_encode(String res, String key)AES_decode(String res, String key)

使用 AES 算法和 128 位密钥大小加密或解密数据。

示例:

AesCrypto crypto = AesCrypto.getInstance();
String encrypted = crypto.AES_encode("你好,世界!", "mySecretKey");
String decrypted = crypto.AES_decode(encrypted, "mySecretKey");

5. encryptTripleDES(byte[] key, String data)decryptTripleDES(byte[] key, byte[] data)

使用三重 DES (3DES) 算法加密或解密数据。

示例:

byte[] key = new byte[24]; // 生成或获取一个 24 字节的密钥
new SecureRandom().nextBytes(key);

byte[] encrypted = AesCrypto.encryptTripleDES(key, "你好,世界!");
String decrypted = AesCrypto.decryptTripleDES(key, encrypted);

6. initSalt()encryptPBE(String key, byte[] salt, String data)decryptPBE(String key, byte[] salt, byte[] data)

基于密码的加密 (PBE) 方法。

示例:

byte[] salt = AesCrypto.initSalt();
String key = "mySecretPassword";

byte[] encrypted = AesCrypto.encryptPBE(key, salt, "你好,世界!");
String decrypted = AesCrypto.decryptPBE(key, salt, encrypted);

结论

AesCrypto 类提供了一套全面的对称加密和解密工具。它支持多种算法(AES、DES、3DES、PBE)并为安全数据处理提供了简单的接口。请记住安全地存储加密密钥,并遵循加密实现的最佳实践。