package org.apache.jmeter.functions;
/**
* @author heartingme
* @date 2023/1/10 4:25 下午
* movingbrick
*/
import org.apache.commons.lang3.StringUtils;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
/**
* @author heartingme
* @date 2023/1/10 9:20 下午
* movingbrick
*/
public class AESUtil {
/**
* 编码
*/
private static final String ENCODING = "UTF-8";
/**
* 算法定义
*/
private static final String AES_ALGORITHM = "AES";
/**
* 指定填充方式
*/
private static final String CIPHER_PADDING = "AES/ECB/PKCS5Padding";
/**
* AES加密
*
* @param content 待加密内容
* @param aesKey 密码
* @return
*/
public static String encrypt(String content, String aesKey) {
if (StringUtils.isBlank(content)) {
return null;
}
//判断秘钥是否为16位
if (StringUtils.isNotBlank(aesKey) && aesKey.length() == 16) {
try {
//对密码进行编码
byte[] bytes = aesKey.getBytes(ENCODING);
//设置加密算法,生成秘钥
SecretKeySpec skeySpec = new SecretKeySpec(bytes, AES_ALGORITHM);
// "算法/模式/补码方式"
Cipher cipher = Cipher.getInstance(CIPHER_PADDING);
//选择加密
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
//根据待加密内容生成字节数组
byte[] encrypted = cipher.doFinal(content.getBytes(ENCODING));
//返回base64字符串
Base64.Encoder encoder = Base64.getEncoder();
return encoder.encodeToString(encrypted);
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
return "secret key length should be i6";
}
}
/**
* 解密
*
* @param content 待解密内容
* @param aesKey 密码
* @return
*/
public static String decrypt(String content, String aesKey) {
if (StringUtils.isBlank(content)) {
return null;
}
//判断秘钥是否为16位
if (StringUtils.isNotBlank(aesKey) && aesKey.length() == 16) {
try {
//对密码进行编码
byte[] bytes = aesKey.getBytes(ENCODING);
//设置解密算法,生成秘钥
SecretKeySpec skeySpec = new SecretKeySpec(bytes, AES_ALGORITHM);
// "算法/模式/补码方式"
Cipher cipher = Cipher.getInstance(CIPHER_PADDING);
//选择解密
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
//先进行Base64解码
Base64.Decoder decoder = Base64.getDecoder();
byte[] decodeBase64 = decoder.decode(content);
//根据待解密内容进行解密
byte[] decrypted = cipher.doFinal(decodeBase64);
//将字节数组转成字符串
return new String(decrypted, ENCODING);
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
return "secret key length should be i6";
}
}
public static void main(String[] args) {
// AES支持三种长度的密钥:128位、192位、256位。
// 代码中这种就是128位的加密密钥,16字节 * 8位/字节 = 128位。
String random = "Digi720ctidHuma3";
System.out.println("密钥key:" + random);
String aes = "{\"token\":\"f08d023a-4739-4dbc-898f-161968681281\",\"action\":\"detect\",\"data\":{\"image\":\"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
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
maven_webapp.zip (24个子文件)
maven_webapp
demo_try
.idea
maven_webapp.iml 344B
workspace.xml 3KB
misc.xml 178B
modules.xml 283B
.gitignore 184B
maven_webapp
pom.xml 2KB
src
main
resources
java
org
apache
jmeter
functions
AESUtil.java 56KB
imgToBasse64.java 2KB
AES_Decrypt.java 38KB
AES_Encrypt.java 38KB
copilot_try.java 111B
readJson.java 951B
temp.java 0B
.idea
jarRepositories.xml 1KB
workspace.xml 6KB
misc.xml 541B
compiler.xml 545B
.gitignore 184B
target
classes
org
apache
jmeter
functions
imgToBase64.class 3KB
AESUtil.class 18KB
AES_Decrypt.class 2KB
AES_Encrypt.class 2KB
readJson.class 423B
copilot_try.class 314B
generated-sources
annotations
共 24 条
- 1
资源评论
沧海二阳
- 粉丝: 261
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功