本文工具类针对的是Java环境下, AES对称加密的工具类, 包括加密和解密

package com.zhouzhou.flow.util;import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;
/**** @author zhouzhou* 2020-9-29 15:27:42**/
public class AESUtil {private static  final String SECRET = "hahahahahahahaha";// 加密public static String Encrypt(String sSrc, String sKey) throws Exception {if (sKey == null) {sKey = SECRET;}// 判断Key是否为16位if (sKey.length() != 16) {System.out.print("Key长度不是16位");return null;}byte[] raw = sKey.getBytes("utf-8");SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));return new Base64().encodeToString(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。}// 解密public static String Decrypt(String sSrc, String sKey) throws Exception {try {// 判断Key是否正确if (sKey == null) {System.out.print("Key为空null");return null;}// 判断Key是否为16位if (sKey.length() != 16) {System.out.print("Key长度不是16位");return null;}byte[] raw = sKey.getBytes("utf-8");SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, skeySpec);byte[] encrypted1 = new Base64().decode(sSrc);//先用base64解密try {byte[] original = cipher.doFinal(encrypted1);String originalString = new String(original,"utf-8");return originalString;} catch (Exception e) {System.out.println(e.toString());return null;}} catch (Exception ex) {System.out.println(ex.toString());return null;}}public static void main(String[] args) throws Exception {/** 此处使用AES-128-ECB加密模式,key需要为16位。*/String cKey = "1234567890123456";// 需要加密的字串String cSrc = "www.gowhere.so";System.out.println(cSrc);// 加密String enString = AESUtil.Encrypt(cSrc, cKey);System.out.println("加密后的字串是:" + enString);// 解密String DeString = AESUtil.Decrypt(enString, cKey);System.out.println("解密后的字串是:" + DeString);}
}

AES加密工具类AESUtil相关推荐

  1. Android加密工具类,Android AES加密工具类分享

    1.AES加密工具类 java不支持PKCS7Padding,只支持PKCS5Padding.我们知道加密算法由算法+模式+填充组成,下一篇介绍iOS和Android通用的AES加密,本篇文章使用PK ...

  2. Java AES加密工具类

    import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import jav ...

  3. 带偏移量的AES加密工具

    自定义的一个对称加密工具类AESUtil.java public static final String ENCRYPTION_ALGORITHM = "AES";public s ...

  4. App开发流程之加密工具类

    从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累. 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长.如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发 ...

  5. MD5加盐加密工具类(可直接使用)

    MD5加盐加密工具类 在我们做项目时,涉及到用户密码,而正常来说数据库中不会直接存储明文的密码,都是加密之后的密码. 密码加密的方式有很多,比如: ① 3DES.AES.DES:使用对称加密算法,可以 ...

  6. Java加密工具类EncryptUtils

    Java 提供了一些常见的加密算法,如 MD5.SHA.AES.DES,现将这些实现方法放进加密工具类 EncryptionUtils 使用了 String.format() 来确保每个字节都能够正确 ...

  7. 加密工具类 - CryptoUtils.java

    加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载  - CryptoUtils.java.commons-io-2.4.jar.commons-code ...

  8. java 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过

    /** * RSA加密工具类 * 使用PKCS1_PADDING填充,密钥长度1024 * 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey * 注 ...

  9. java在线支付---04_编写易宝支付的客户端加密工具类

    2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...

最新文章

  1. Python的Super方法
  2. oracle cpu 利用率过高 kswapd0_服务器带宽监测与利用率过高的解决办法
  3. 【C语言进阶深度学习记录】二十四 指针与数组的本质分析一
  4. dw怎么修改html框架的宽度,Dreamweaver (dw)cs6中div标签宽度和高度设置方法
  5. php筛选怎么做,thinkphp条件筛选 例子
  6. 16. Magento模板及布局文件中引用Static Block的方法
  7. 打游戏的计算机,玩游戏还得台式机!高性能游戏台式电脑推荐
  8. C语言水平镜像处理16色位图,C语言使用HZK16显示每个像素的代码
  9. informix软件
  10. (自我介绍范文)java面试自我介绍
  11. 字节跳动移动架构师学习笔记,Android篇
  12. 关于tensor的shape理解
  13. 链表中为何使用二级指针
  14. 地球物理勘探技术类毕业论文文献有哪些?
  15. SQL语句分类DDL、DML、DQL、DCL语句
  16. 从计算机屏幕上抓取动态操作过程 也称为,计算机学业水平考试单项选择题综合训练一 答案复习过程...
  17. access数据库窗体设计实验报告_access实验报告窗体和界面设计
  18. android免root自动化,免root自动化安卓助手
  19. java深入学习(一)
  20. 二极管导通优先级比较

热门文章

  1. WordPress网站创建和添加Google数据分析代码完整指南(2022年8月最新)
  2. 如何通过云计算加速游戏开发
  3. [Unity3d]虚拟3D汽车展示项目
  4. 管理员工的上网行为,企业网管还被呼来喝去吗?
  5. FWT(Fast Walsh Transformation)快速沃尔什变换学习笔记
  6. 敢问DeFi,路在何方?
  7. 【多线程编程】--ThreadLocal、InheritableThreadLocal(ITL)、TransmittableThreadLocal(TTL)解析
  8. 在微信小程序中动态的添加类名
  9. 人羊狼菜过河问题c++
  10. 【RdViewer】强烈推荐的免费远程控制软件