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

介绍语本头条号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+

介绍语

本头条号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发!

关注多的话,后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊

如果码友觉得代码太长,可以从头到尾快速扫射一遍,了解大概即可。觉得有用后再转发收藏,以备不时之需。

正文:

项目中你的数据库密码不会是直接明文吧?如果是,那请你考虑下是不是有安全风险呀。我的项目中涉及到密码的,都用这个工具类进行加密,在配置文件(如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 = 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项目或是分布式微服务,一部分功能模块都是可以重用的,工具类模块就是其中之一。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 97552693@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://m.teaffka.com/n/17053.html

(0)
新劵的头像新劵
上一篇 2023年 10月 30日
下一篇 2023年 10月 30日

相关推荐

  • 侃爷前女友Fox揭秘二人恋爱细节 直言像多了个儿子

    10月19日,侃爷前女友揭秘二人恋爱细节,Julia Fox在回忆录中讲述与侃爷的恋情经历,表示刚恋爱就知道不会长久,直言像多了个儿子:“我并不想要两个孩子。我做不到。当时的感觉就像生了两个孩子。” Fox还表示侃爷非常希望自己能够经常出现在各大头条里。她说:"他确实希望我变得更火,比如当我获得大量媒体报道时,他就会非常激动。他这个人就是这样,当他对某个人有…

    2023年 10月 19日
    10000
  • 男士十大奢侈品鞋子(男士高端鞋子品牌大全)

    在时尚世界中,奢侈品鞋子一直是男士们炫耀品味和风格的重要标志。本文将为您介绍男士十大奢侈品鞋子,以展示其独特的设计、制作工艺和高昂的价格。男士十大奢侈品鞋子1、克里斯提·鲁布托这个法国品牌以其红色鞋底

    2023年 11月 3日
    11900
  • 去白底变透明的方法步骤(ps怎么把白色背景变透明)

    今天我们来学习如何用PS软件把图片背景改为透明,首先分为把已有背景图改为透明背景和做图一开始就做成透明背景。我们先来学习第一种把已有背景的图片背景改为透明,首先打开我们要处理的图片。在左侧工具栏中找到

    2023年 11月 7日
    8800
  • 描述机械迷城通关教程(机械迷城全部攻略图文)

    机械迷城通关全流程详解,第一关要在浴缸里把机器人的四肢组装好,第二关将拿到灯泡然后戴在头上,第三关借助矿车将自己推进锅炉房间,下面是游戏关卡详细解析。第一关:首先,点击两次浴缸,这时会出现机器人的身体

    2023年 9月 30日
    6900
  • 了解跳跳乐跳跃身法教学(cf跳跳乐极限跳跃技巧)

    在体验服里面新推出的了一种跳跳乐的玩法,估计很快会出现在正式服里了。那么,这个跳跳乐应该怎么玩呢?小编这就来分享CF手游跳跳乐要怎么玩CF手游跳跳乐玩法技巧分享。CF手游跳跳乐要怎么玩?其实这个跳跳

    2023年 10月 3日
    9000

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:97552693@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息