Java中AES加解密的工具类

Java AES加解密工具类 AESUtil 看了几个都写的不好,还是自己写把 注意 PKCS7 需要加一下依赖 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version> </dependency> 不BB废话,直上代码 public class AESUtil 阅读详情
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;


/**
 * AES加解密
 *
 * @Author:zkx
 * @date:2019年6月21日 上午9:01:41
 */
class AESUtils {

    /**
     * 默认秘钥
     */
    protected static final String KEY = "NOPO3nzMD3dndwS0MccuMeXCHgVlGOoYyFwLdS24Im2e7YyhB0wrUsyYf0";

    /**
     * AES解密
     *
     * @param encryptValue 待解密内容
     * @param key          秘钥
     * @return
     * @throws Exception
     */
    protected static String decrypt(String encryptValue, String key) throws Exception {
        return aesDecryptByBytes(base64Decode(encryptValue), key);
    }

    /**
     * AES加密
     *
     * @param value 待加密内容
     * @param key   秘钥
     * @return
     * @throws Exception
     */
    protected static String encrypt(String value, String key) throws Exception {
        return base64Encode(aesEncryptToBytes(value, key));
    }

    private static String base64Encode(byte[] bytes) {
        return Base64Utils.encrypt(bytes);
    }

    @SuppressWarnings("static-access")
    private static byte[] base64Decode(String base64Code) throws Exception {
        return base64Code == null ? null : Base64Utils.decrypt(base64Code);
    }

    private static byte[] aesEncryptToBytes(String content, String encryptKey) throws Exception {
        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        kgen.init(128, new SecureRandom(encryptKey.getBytes()));

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES"));

        return cipher.doFinal(content.getBytes("utf-8"));
    }

    private static String aesDecryptByBytes(byte[] encryptBytes, String decryptKey) throws Exception {
        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        kgen.init(128, new SecureRandom(decryptKey.getBytes()));

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES"));
        byte[] decryptBytes = cipher.doFinal(encryptBytes);

        return new String(decryptBytes);
    }

}

注:

方法中Base64Utils工具类的链接:https://blog.youkuaiyun.com/JavaWebEngineer/article/details/107334384

Java与Winform进行AES加解密数据传输的工具类与对应关系和示例 上面讲的Java与安卓进行数据传输时使用AES加解密的示例工具类。如果Java需要与其他第三方平台比如Winform程序进行数据传递时也需要数据加解密。 阅读详情

相关推荐

高频面试题-项目介绍篇

聊聊如何介绍项目经历。

m0_73359763的博客 1908

Java实现AES加密工具类 - 简单易用的数据加密解决方案

本篇文章将介绍一个简单的Java工具类,该工具类使用AES对称加密算法来对数据进行加密和解密。

qq_41535923的博客 4479

华为C语言笔试题(附答案)

华为C语言笔试题(附答案)     1、局部变量能否和全局变量重名?   答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "   局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。  

峰云四起 3032

Java加密算法工具类(AES、DES、MD5、RSA)

AES、DES、MD5、RSA

21届Java攻城狮&Python民兵 1852

Dify DSL文件分享 Dify讨论群 大模型token资源等(持续收集更新)

基于LLMOps平台-Dify的一站式学习平台。包含不限于:Dify案例、DSL文件分享、模型接入、Dify交流讨论等各类资源分享。

同名公众号:dify实验室 3714

深入解析YT8521S千兆以太网PHY芯片的设计与调试要点

本文深入解析了YT8521S千兆以太网PHY芯片的设计与调试要点。重点剖析了硬件设计中的电源方案、RGMII接口电平配置(尤其是1.8V电平方案)以及PCB布局布线等关键细节,并提供了从硬件检查、驱动配置到性能测试的完整调试流程,帮助工程师规避常见陷阱,实现稳定可靠的千兆网络连接。

weixin_29190573的博客 687

加解密工具类

Aes、Md5加解密

louhih的博客 668

保姆级教程:在Ubuntu 21.04上搞定USRP X410的UHD 4.1驱动与Gnuradio 3.9安装(含虚拟机网络避坑指南)

本文提供在Ubuntu 21.04上配置USRP X410的UHD 4.1驱动与Gnuradio 3.9的详细教程,涵盖虚拟机网络设置、依赖安装、源码编译及常见问题解决方案,帮助开发者高效搭建SDR开发环境。

weixin_27869497的博客 272

Java实现AES加密算法工具类

对称密钥算法:AES 使用相同的密钥进行加密和解密,因此被归类为对称密钥算法。这意味着发送方和接收方必须在通信前共享密钥。块加密算法:AES 将明文分成固定大小的块(128 比特),然后对每个块进行加密。在加密过程中,每个块使用相同的密钥独立加密,增强了安全性。密钥长度:AES 支持多种密钥长度,包括 128 位、192 位和 256 位。密钥越长,破解难度越大,但同时也增加了计算成本。替代算法:AES 有三种变体,分别使用不同的密钥长度,分别为 AES-128、AES-192 和 AES-256。

MADAO的博客 1575

Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈

Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。

士多啤梨先生の博客 991

海思Hi3061M MCU:为高速吹风筒市场注入智能动力

此外,海思还提供了丰富的软件开发工具和生态环境组件,帮助开发者快速实现复杂功能。高速吹风筒因其高效的风力和快速的干燥效果,近年来在市场上越来越受欢迎。然而,传统的高速吹风筒在性能、噪音和使用寿命等方面仍有改进的空间。凭借其高性能、低功耗、低噪声和易用的开发工具,为高速吹风筒市场带来了全新的解决方案。这不仅提高了用户的使用体验,还延长了电机的使用寿命。这不仅减少了电机的电磁噪声,还提高了电机的运行效率。还支持风机顺逆风启动适配多种电阻范围的电机,进一步提高了吹风筒的适用性和灵活性。

2401_83448585的博客 2016

Java AES 加密工具类(复制即用)

【代码】Java AES 加密工具类

weixin_2630663675的博客 963

RT-DETR改进前必看 - Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进

的项目文件中集成了YOLOv3v5v6v8v9v10rt-detr11以及其中不同大小的模型结构,更方便我们学习和使用。的参数配置在路径下,其中中设置了模型在训练Train验证Val/Test预测Predict可视化Visualize导出Export超参数Hyperparameters、以及跟踪Tracker的相关参数。在调参过程中主要涉及训练Train和超参数Hyperparameters。下面主要介绍一下初始超参数Hyperparameters。

Limiiiing的博客 7959

Java 工具类之 AES 加解密

import lombok.Setter; import lombok.extern.slf4j.Slf4j; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.nio.charset.StandardCharsets; import j...

你的世界我来过 285

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Java】AesCbcCodec(AES_CBC加解密工具类)

Java AES_CBC加解密工具类 import java.io.IOException; import java.security.GeneralSecurityException; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; impo...

XKIND'S 博客 722

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java实现AES ECP PKCS5Padding加解密工具类

Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类 加密算法: AES 模式: ECB 补码方式: PKCS5Padding 1. 工具类 import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.util.Base...

小灰灰blog的专栏 981

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java AES 加解密工具类

【代码】Java AES 加解密工具类。

BillKu的博客 523

java aes 工具类_Java中的AES加解密工具类:AESUtils

本人手写已测试,大家可以参考使用package com.mirana.frame.utils.encrypt;import com.mirana.frame.constants.SysConstants;import com.mirana.frame.utils.RandomUtils;import com.mirana.frame.utils.SysPropUtils;import com.mi...

weixin_36336710的博客 1172

Java 加解密工具类(AES,DES,DES3)

Java加解密工具类

1903

【Java】AesEcbCodec(AES_ECB加解密工具类)

Java AES_ECB加解密工具类 import java.io.IOException; import java.security.GeneralSecurityException; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; impor...

XKIND'S 博客 804

java aes pkcs5_Java实现AES ECP PKCS5Padding加解密工具类

Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类加密算法: AES模式: ECB补码方式: PKCS5Padding1. 工具类import lombok.Getter;import lombok.Setter;import lombok.extern.slf4j.Slf4j;import org.springframework.util.Base64Utils;imp...

weixin_29943753的博客 502

.net byte转java byte_Java实现AES ECP PKCS5Padding加解密工具类

Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类加密算法:AES模式:ECB补码方式:PKCS5Padding1. 工具类importlombok.Getter;importlombok.Setter;importlombok.extern.slf4j.Slf4j;importorg.springframework.util.Base64Utils;import...

weixin_39738251的博客 199

android aes java_Java开发 AES加解密工具类——兼容Android9.0

packagenet.wt.gate.dev.util;importandroid.annotation.SuppressLint;importandroid.os.Build;importandroid.util.Log;importjava.nio.charset.StandardCharsets;importjava.security.Provider;importjava.security...

weixin_35505988的博客 285

oracle实现aes解密_Java实现AES ECP PKCS5Padding加解密工具类

Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类加密算法:AES模式:ECB补码方式:PKCS5Padding1. 工具类importlombok.Getter;importlombok.Setter;importlombok.extern.slf4j.Slf4j;importorg.springframework.util.Base64Utils;import...

weixin_34551573的博客 273

JAVA AES 加解密工具类

@Slf4j public class AesTool { private static final Logger logger = LoggerFactory.getLogger(AesTool.class); //log日志 private static final String ALGORITHM = "AES/ECB/PKCS5Padding"; //"算法/模式/补码方式" /*******************************************

深入Java世界:探索编程之美与技术深度 758
上一篇: Java中DES加解密的工具类
下一篇: Java中对文本内容进行敏感词汇过滤的工具类
Monika、
博客等级 码龄7年 16粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monika、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值