复制
收藏
提问
简洁

springboot AES加密解密通用类代码生成数字

3cc17134b
2周前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些
  • 在Spring Boot中实现AES加密解密的通用类代码,可以生成数字形式的密钥。

AES加密解密通用类

  • 生成AES密钥:使用KeyGenerator类生成AES密钥,通常选择128、192或256位作为密钥长度。
  • 加密过程:通过Cipher类的实例,使用init方法设置加密模式和密钥,然后调用doFinal方法对数据进行加密。
  • 解密过程:与加密过程类似,但使用解密模式初始化Cipher对象,最后同样调用doFinal方法完成解密。

代码示例

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.SecureRandom;
import java.util.Base64;

public class AesUtil {
    private static final String AES = "AES";
    private static final String AES_ALGORITHM = "AES/ECB/PKCS5Padding";

    // 生成AES密钥
    public static SecretKey generateAESKey(int keySize) throws Exception {
        KeyGenerator keyGenerator = KeyGenerator.getInstance(AES);
        keyGenerator.init(keySize, new SecureRandom());
        return keyGenerator.generateKey();
    }

    // AES加密
    public static String encryptAES(String data, SecretKey key) throws Exception {
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] encryptedData = cipher.doFinal(data.getBytes());
        return Base64.getEncoder().encodeToString(encryptedData);
    }

    // AES解密
    public static String decryptAES(String encryptedData, SecretKey key) throws Exception {
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.DECRYPT_MODE, key);
        byte[] decryptedData = cipher.doFinal(Base64.getDecoder().decode(encryptedData));
        return new String(decryptedData);
    }
}
  • 要点总结:上述代码展示了如何在Spring Boot项目中创建一个AES加密解密的通用类。首先,通过generateAESKey方法生成一个AES密钥;然后,使用encryptAESdecryptAES方法分别
你觉得结果怎么样?
如何选择合适的加密算法?
加密技术在数据安全中的作用是什么?
如何管理加密密钥?
如何选择合适的AES密钥长度? Base64编码在AES加密中的作用是什么? 如何保证AES密钥的安全性? Spring Boot中如何整合非对称加密算法? AES加密在数据传输安全中的应用场景有哪些?

以上内容由AI搜集生成,仅供参考

在线客服