【java】java的aes加密解密的简单使用

本文深入解析Java安全体系中的加密框架,重点介绍AES加密算法的原理与实践应用,包括生成随机Key、加密与解密过程,以及使用Base64进行数据展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java的安全体系由四部分组成:

  • JCA(Java Cryptography Architecture)  提供基本的加密框架,比如消息摘要、数字签名
  • JCE(Java Cryptography Extension)  提供基本的加密算法 比如DES、AES、RSA(非对称)算法
  • JSSE(Java Secure Socket Extension)  提供基于SSL的加密功能,主要用于网络传输安全
  • JAAS(Java Authentication and Authorization Service)  提供了java程序的各种鉴权服务

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的),属于JAVA JCE(Java Cryptography Extension)的一种。

基础的使用流程如下:

 
简单的demo
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;
import java.util.Base64;

public class Main {

    public  static  String src = "我是要加密的内容";

    public static void main(String[] args) {

        try {
            // 生成随机Key
            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
            keyGenerator.init(128);
            SecretKey secretKey = keyGenerator.generateKey();
            byte [] keyBytes = secretKey.getEncoded();

            // Key 转换
            Key key = new SecretKeySpec(keyBytes, "AES");

            // 加密
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); // ECB:工作模式;PKCS5Padding:填充方式
            cipher.init(Cipher.ENCRYPT_MODE, key);
            byte [] result = cipher.doFinal(src.getBytes());
            System.out.println("jdk aes encrypt: " + Base64.getEncoder().encodeToString(result)); // 这里用Base64加密是为了更好的展示数据

            // 解密
            cipher.init(Cipher.DECRYPT_MODE, key);
            result = cipher.doFinal(result);
            System.out.println("jdk aes decrypt: " + new String (result));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

输出结果

jdk aes encrypt: 9dEOgC8dlWWEKp4lhnyNWxGzTSHAovnLmc3lPKqg+X4=
jdk aes decrypt: 我是要加密的内容

 

 
 

转载于:https://www.cnblogs.com/zycb/p/11546184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值