aes加密 java_Java - AES加密解密

该博客介绍了如何使用Java的Cipher工具类实现AES加密和解密,详细讲解了加密过程中数组扩容、转换成16进制字符串的步骤,以及解密时16进制字符串转回byte数组的方法。示例代码包括加密和解密的完整过程。
摘要由CSDN通过智能技术生成

内容: 使用Java中Cipher工具类进行AES加密,并将加密后的byte数组转换成16进制字符串。(也可以转换成base64字符串)

加密过程:

1.数组扩容(需要是16的倍数)

2. 加密得到byte数组

3. 遍历byte数组,对byte字节进行补码成正十进制数值

4. 十进制数值转换成十六进制数值

5. 十六进制数值如果只有一位需要在前面追加0补充。 这是为了解密时十六进制进行转换成10进制。

解密过程:

1.十六进制字符串转换成byte数组时需要每两个字符进行, 因为前面加密时进行了补0.

2.进行10进制换算 第一位是进1的,所以要乘以16 然后加上第二位。如果是0的话,乘的时候也是0,所以这是为什么加密的时候要在前面加0(还有一个是为了两两换算).

3. 十进制进行byte转换, java会自动反转和加密时的byte数组对应起来 4. 拿到原加密数组后进行解密并返回字符串

​​

package com.cli.example.util;

import javax.crypto.Cipher;

import javax.crypto.spec.IvParameterSpec;

import javax.crypto.spec.SecretKeySpec;

import java.util.Arrays;

/*** AES加密工具类** @author Cr* @date 2020-03-22** **/

public class AESUtil {

private static final IvParameterSpec IV_PARAMETER_SPEC = new IvP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值