使用Hutool对AES加密解密

您所在的位置:网站首页 对称加密怎么解密 使用Hutool对AES加密解密

使用Hutool对AES加密解密

2024-07-16 09:26| 来源: 网络整理| 查看: 265

1. 前言

AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个。

2. Maven环境安装 cn.hutool hutool-all 5.8.2 3.加密模式

AES 加密最常用的模式就是 ECB模式 和 CBC 模式,当然还有很多其它模式,他们都属于AES加密。ECB模式和CBC 模式俩者区别就是 ECB 不需要 iv偏移量,而CBC需要。

4.AES加密使用参数

以下参数都是在python中使用的。 在这里插入图片描述

秘钥必须为16字节或者16字节的倍数的字节型数据。明文必须为16字节或者16字节的倍数的字节型数据,如果不够16字节需要进行补全。 5.Hutool import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; import cn.hutool.crypto.symmetric.AES; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; /** * @author gogo */ public class SymmetricCryptoUtil { /** * 16字节 */ private static final String ENCODE_KEY = "1234567812345678"; private static final String IV_KEY = "0000000000000000"; public static void main(String[] args) { String encryptData = encryptFromString("zdm321123.", Mode.CBC, Padding.ZeroPadding); System.out.println("加密:" + encryptData); String decryptData = decryptFromString(encryptData, Mode.CBC, Padding.ZeroPadding); System.out.println("解密:" + decryptData); } public static String encryptFromString(String data, Mode mode, Padding padding) { AES aes; if (Mode.CBC == mode) { aes = new AES(mode, padding, new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"), new IvParameterSpec(IV_KEY.getBytes())); } else { aes = new AES(mode, padding, new SecretKeySpec(ENCODE_KEY.getBytes(), "AES")); } return aes.encryptBase64(data, StandardCharsets.UTF_8); } public static String decryptFromString(String data, Mode mode, Padding padding) { AES aes; if (Mode.CBC == mode) { aes = new AES(mode, padding, new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"), new IvParameterSpec(IV_KEY.getBytes())); } else { aes = new AES(mode, padding, new SecretKeySpec(ENCODE_KEY.getBytes(), "AES")); } byte[] decryptDataBase64 = aes.decrypt(data); return new String(decryptDataBase64, StandardCharsets.UTF_8); } }

加密:uhm2VC27Dm5j1P/LTYBdrQ== 解密:dddd321123.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3