赞
踩
内容: 使用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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。