AES加密工具类AESUtil
本文工具类针对的是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相关推荐
- Android加密工具类,Android AES加密工具类分享
1.AES加密工具类 java不支持PKCS7Padding,只支持PKCS5Padding.我们知道加密算法由算法+模式+填充组成,下一篇介绍iOS和Android通用的AES加密,本篇文章使用PK ...
- Java AES加密工具类
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import jav ...
- 带偏移量的AES加密工具
自定义的一个对称加密工具类AESUtil.java public static final String ENCRYPTION_ALGORITHM = "AES";public s ...
- App开发流程之加密工具类
从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累. 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长.如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发 ...
- MD5加盐加密工具类(可直接使用)
MD5加盐加密工具类 在我们做项目时,涉及到用户密码,而正常来说数据库中不会直接存储明文的密码,都是加密之后的密码. 密码加密的方式有很多,比如: ① 3DES.AES.DES:使用对称加密算法,可以 ...
- Java加密工具类EncryptUtils
Java 提供了一些常见的加密算法,如 MD5.SHA.AES.DES,现将这些实现方法放进加密工具类 EncryptionUtils 使用了 String.format() 来确保每个字节都能够正确 ...
- 加密工具类 - CryptoUtils.java
加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载 - CryptoUtils.java.commons-io-2.4.jar.commons-code ...
- java 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过
/** * RSA加密工具类 * 使用PKCS1_PADDING填充,密钥长度1024 * 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey * 注 ...
- java在线支付---04_编写易宝支付的客户端加密工具类
2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...
最新文章
- Python的Super方法
- oracle cpu 利用率过高 kswapd0_服务器带宽监测与利用率过高的解决办法
- 【C语言进阶深度学习记录】二十四 指针与数组的本质分析一
- dw怎么修改html框架的宽度,Dreamweaver (dw)cs6中div标签宽度和高度设置方法
- php筛选怎么做,thinkphp条件筛选 例子
- 16. Magento模板及布局文件中引用Static Block的方法
- 打游戏的计算机,玩游戏还得台式机!高性能游戏台式电脑推荐
- C语言水平镜像处理16色位图,C语言使用HZK16显示每个像素的代码
- informix软件
- (自我介绍范文)java面试自我介绍
- 字节跳动移动架构师学习笔记,Android篇
- 关于tensor的shape理解
- 链表中为何使用二级指针
- 地球物理勘探技术类毕业论文文献有哪些?
- SQL语句分类DDL、DML、DQL、DCL语句
- 从计算机屏幕上抓取动态操作过程 也称为,计算机学业水平考试单项选择题综合训练一 答案复习过程...
- access数据库窗体设计实验报告_access实验报告窗体和界面设计
- android免root自动化,免root自动化安卓助手
- java深入学习(一)
- 二极管导通优先级比较
热门文章
- WordPress网站创建和添加Google数据分析代码完整指南(2022年8月最新)
- 如何通过云计算加速游戏开发
- [Unity3d]虚拟3D汽车展示项目
- 管理员工的上网行为,企业网管还被呼来喝去吗?
- FWT(Fast Walsh Transformation)快速沃尔什变换学习笔记
- 敢问DeFi,路在何方?
- 【多线程编程】--ThreadLocal、InheritableThreadLocal(ITL)、TransmittableThreadLocal(TTL)解析
- 在微信小程序中动态的添加类名
- 人羊狼菜过河问题c++
- 【RdViewer】强烈推荐的免费远程控制软件