aes加密解密工具的在线使用方法 在线aes加密工具

介绍语
本头条号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享 。文章会不断更新,欢迎码友关注点赞收藏转发!
【aes加密解密工具的在线使用方法 在线aes加密工具】关注多的话,后面会录制一些视频教程 , 图文和视频结合 , 比如:图书介绍网站系统、抢购系统、大数据中台系统等 。技术才是程序猿的最爱,码友们冲啊
如果码友觉得代码太长,可以从头到尾快速扫射一遍,了解大概即可 。觉得有用后再转发收藏,以备不时之需 。
正文:
项目中你的数据库密码不会是直接明文吧?如果是,那请你考虑下是不是有安全风险呀 。我的项目中涉及到密码的,都用这个工具类进行加密,在配置文件(如bootstrap.yml)中配置加密后的密文 , 在数据库配置类中再解密,这样数据库的密码就不会裸奔了 。下面给出使用的案例简单截图,以后也会分享对mysql密码进行加密处理的案例和源码 。

mysql使用案例截图
在配置文件中配置加密后的密文
aes加密解密工具的在线使用方法 在线aes加密工具

文章插图
配置文件
在配置类中解密
aes加密解密工具的在线使用方法 在线aes加密工具

文章插图
配置类
工具类使用例子 。(已修改了工具类的方法名)

aes加密解密工具的在线使用方法 在线aes加密工具

文章插图
使用例子
上面案例使用的工具类:
import org.apache.commons.codec.binary.Base64;import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom;/*** AES加解密工具类** @author liangxn*/ public class AesUtil {/*** SecureRandom类的seed,可以改为自己的字符串*/private static final String RANDOM_SEED = "seed-abcxyz-123-456";private AesUtil() {}/*** 加密方法*/public static String encrypt(String content) {// 待加密的内容byte[] contentByte = content.getBytes(StandardCharsets.UTF_8);byte[] data = http://www.wokk.cn/new byte[0];try {data = cipher(contentByte, Cipher.ENCRYPT_MODE);} catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {e.printStackTrace();}return new String(Base64.encodeBase64(data), StandardCharsets.UTF_8);}/*** 加密方法*/public static String decrypt(String content) {byte[] decodeContent = Base64.decodeBase64(content);byte[] data = new byte[0];try {data = cipher(decodeContent, Cipher.DECRYPT_MODE);} catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {e.printStackTrace();}return new String(data, StandardCharsets.UTF_8);}/*** 加解密计算器** @param content 要加密的内容* @param mode计算模式(本工具类用到Cipher.ENCRYPT_MODE、Cipher.DECRYPT_MODE这两个)* @return*/private static byte[] cipher(byte[] content, int mode) throws NoSuchAlgorithmException, NoSuchPaddingException,InvalidKeyException, IllegalBlockSizeException, BadPaddingException {if (content == null) {throw new NullPointerException("content为空");}if (mode != Cipher.ENCRYPT_MODE && mode != Cipher.DECRYPT_MODE) {throw new IllegalArgumentException("mode非法");}// AES密钥生成器实例KeyGenerator keygen = KeyGenerator.getInstance("AES");// 安全随机数工具,创建SHA1PRNG随机算法的实例SecureRandom random = SecureRandom.getInstance("SHA1PRNG");// 设置种子random.setSeed(AesUtil.RANDOM_SEED.getBytes(StandardCharsets.UTF_8));// 初始化密钥生产器keygen.init(128, random);// 生成原始对称密钥SecretKey secretKey = keygen.generateKey();// 获得原始对称密钥的字节数组byte[] secretKeyByte = secretKey.getEncoded();// 生成AES密钥SecretKey key = new SecretKeySpec(secretKeyByte, "AES");// 创建密码器Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");// 初始化密码器cipher.init(mode, key);// 数据加密return cipher.doFinal(content);} } 鄙人编码十年多,在项目中也积累了一些工具类,很多工具类在每个项目都有在用 , 很实用 。大部分是鄙人封装的,有些工具类是同事封装的,有些工具类已经不记得是ctrl+c的还是自己封装的了 , 现在有空就会总结项目中大部分的工具类,分享给各位码友 。如果文章中涉及的代码有侵权行为请通知鄙人处理 。
计划是先把工具类整AESU理出来 , 正所谓工欲善其事,必先利其器 。项目中不管是普通单体项目还是多模块maven项目或是分布式微服务,一部分功能模块都是可以重用的 , 工具类模块就是其中之一 。


    以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

    「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: