Java-Mysql对称加解密工具类(自用保存)
Mysql 解密函数:
SELECT AES_DECRYPT(UNHEX('*****'),'*****')
Java 代码
public class AesTools {private AesTools() {}public static String encrypt(String content, String key) {try {if (StringUtils.isNotBlank(content) && StringUtils.isNotBlank(key)) {SecretKey aesKey = generateMySQLAESKey(strKey, "ASCII");Cipher cipher = Cipher.getInstance("AES");cipher.init(Cipher.ENCRYPT_MODE, aesKey);byte[] contentBytes = content.getBytes(StandardCharsets.UTF_8);byte[] cipherBytes = cipher.doFinal(contentBytes);return Hex.encodeHexString(cipherBytes).toUpperCase();}} catch (Exception ex) {ex.printStackTrace();}return "";}public static String decrypt(String content, String key) {try {if (StringUtils.isNotBlank(content) && StringUtils.isNotBlank(key)) {SecretKey aesKey = generateMySQLAESKey(key, "ASCII");Cipher cipher = Cipher.getInstance("AES");cipher.init(Cipher.DECRYPT_MODE, aesKey);byte[] contentBytes = Hex.decodeHex(content.toCharArray());byte[] cipherBytes = cipher.doFinal(contentBytes);return new String(cipherBytes, StandardCharsets.UTF_8);}} catch (Exception ex) {ex.printStackTrace();}return "";}public static SecretKeySpec generateMySQLAESKey(final String key, final String encoding) {try {final byte[] keyBytes = new byte[16];int i = 0;for (byte b : key.getBytes(encoding))keyBytes[i++ % 16] ^= b;return new SecretKeySpec(keyBytes, "AES");} catch (Exception ex) {throw new RuntimeException(ex);}}private static ArrayList<List<Integer>> splitArray(ArrayList<Integer> arrayList, int subNum) {int counter = arrayList.size() % subNum == 0 ? arrayList.size() / subNum : arrayList.size() / subNum + 1;ArrayList<List<Integer>> arrayLists = new ArrayList<>();for(int i = 0; i < counter; i++) {int index = i * subNum;List<Integer> tempList = new ArrayList<>();int j = 0;while(j < subNum && index < arrayList.size()) {tempList.add(arrayList.get(index++));j++;}arrayLists.add(tempList);}return arrayLists;}public static void main(String[] args) {String value = "******";String key = "*******";String content = encrypt(value, key);System.out.println("加密后:" + content);System.out.println("解密后:" + decrypt(content, key));}
}
Java-Mysql对称加解密工具类(自用保存)相关推荐
- Java各种方式加解密工具类
文章目录 前言 1.AES 2.DES 3.BCrypt 4.Http Basic 5.MD5 6.RSA 7.SHA256 8.SM3 9.SM4 前言 JAVA能够实现各种加解密方式,这里对各种加 ...
- rsa java ao_RSA加解密工具类
Java 实现 import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairG ...
- java aes 工具类_Java中的AES加解密工具类:AESUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...
- 国密算法-SM4加解密工具类
import cn.hutool.crypto.symmetric.SymmetricCrypto;/*** @author : chenfan* @className : SM4Utils* @da ...
- RSA加解密工具类(PKCS8公钥加密,PKCS1私钥解密)
场景:如果项目上生成的秘钥,公钥是PKCS8格式,私钥却是PKCS1格式.需要在这种场景加解密的话可以直接使用下面工具类. 依赖 <dependency><groupId>or ...
- 阿里云专属KMS信封加解密工具类
此工具类主要实现,字符串的加密,输出为Base64编码的字符串.字符串的解密,输入为Base64编码的字符串.工具类里的IV向量参数,需要用户自己保存,工具类中是默认写死在代码中的,并不规范.IV向量 ...
- Java中的RSA加解密工具类:RSAUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt;import com.mirana.frame.utils.log.LogUtils; ...
- Java——DESUtil加解密工具类
工具类代码如下: package util;import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto ...
- AES-128加解密工具类
Java实现AES加密.解密 import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher; import java ...
最新文章
- 禅道设置bug模板_一款热度很高的项目管理和bug工具,免费使用,可在公司推广哦...
- [YTU]_2641 9 填空题:静态成员---计算学生个数)
- UA MATH566 统计理论 Cramer-Rao不等式与Delta方法的联系
- AtCoder AGC036D Negative Cycle (图论、DP)
- JavaScript---事件监听
- matlab 细化函数,MATLAB图像处理工具箱函数(细化篇).doc
- python中argmin函数_Python numpy.argmin()用法及代码示例
- xss绕过字符过滤_IE8 xss filter bypass (xss过滤器绕过)
- SQL Server中的动态数据屏蔽
- vmlogin效果怎么样?亚马逊防关联超级浏览器,电商多账号管理神器
- java4.25生成车牌号_泸牌16年涨882倍 超25万人拍一张车牌为哪般?
- 树莓派简单摄像头录像并保存视频文件
- c语言中常见的数学函数
- 关于百度网盘下载过慢的解决方法
- 微软认知服务的使用 – 漫画翻译
- Latex实践:一个零Latex基础的术渣花了一天半的时间用Latex完成一篇SCI论文编辑
- Scrapy爬取1908电影网电影数据
- 计算机网络安全说课稿,7.1 计算机网络的安全问题说课稿【一等奖】
- 【Unity】碰撞后缩小比例并与碰撞目标紧贴(吸附效果)
- 模拟LED屏幕文字滚动开发和悬浮
热门文章
- C语言实现字符串转十六进制
- 博通向芯片交换机中新增软件控制功能
- 4.Python3标准库--算法
- 数据库SQL实战-查找所有员工的last_name和first_name以及对应的dept_name(mysql)
- 利用画布canvas,实现图片编辑马赛克效果。canvas.putImageData()实现不一样的马赛克
- lilo是什么意思_LILO LILO的意思解释|LILO是什么意思 -我酷百科
- 如何在Windows 10桌面显示我的电脑和控制面板等系统图标
- 淘宝店铺所有商品接口,商品列表接口,1688店铺所有商品接口,商品列表接口
- 全面屏虚拟按键高度适配
- 栈与队列的定义与区别