网站的301重定向怎么做,免费博客 wordpress,网络广告策划书范文,怎么网站做二维码加密接口常用的方式有#xff1a; MD5#xff0c;SHA#xff0c;HmacSHA RSA AES#xff0c;DES#xff0c;Base64
压测中有些参数需要进行加密#xff0c;加密方式已接口文档为主。
MD5加密
比如MD5加密的接口文档#xff1a; 请求URL#xff1a;http://101.34.221…加密接口常用的方式有 MD5SHAHmacSHA RSA AESDESBase64
压测中有些参数需要进行加密加密方式已接口文档为主。
MD5加密
比如MD5加密的接口文档 请求URLhttp://101.34.221.219:5000/md5login 请求方式POST 请求参数
参数名称参数值是否必须类型备注usernameadmin是string必须MD5加密处理password123是string必须MD5加密处理
1、用户名、密码不进行加密登录测试 用户名密码未进行MD5加密登录失败。
2、用户名、密码进行加密登录测试 用户名密码加密登录成功。
beanshell组件代码加密
目前jmeter的__digest函数支持的加密方式较少jmeter用户手册 其他加密算法要在beanshell组件中编写 比如接口以AES方式加密规则如下
生成访问签名
参数名说明示例值备注clientId签名ID0ca6eaf66cbf4f2bb1db6902c9c8d915clientSecret签名秘钥8c0a5f3388154e2c959f2bd44fc2dd66timestamp时间戳1706859156428当前时间戳uuid唯一ID12345678唯一值一个签名只能使用一次
1.1 访问签名生成逻辑
3.1.1、签名值 签名ID“:”签名秘钥“:”时间戳“:”唯一ID
3.1.2、 生成算法AES 签名参数ECB PKCS7 128bits
3.1.3、 AES算法秘钥aesKey#iSn##s$olu.sm
3.1.4、 access_sign生成规则用AES算法对签名值进行加密
1.2 beanshell脚本编写
// Import the Base64 class
import org.apache.commons.codec.binary.Base64;// 参数
var clientId 0ca6eaf66cbf4f2bb1db6902c9c8d915;
var clientSecret 8c0a5f3388154e2c959f2bd44fc2dd66;
var timestamp new Date().getTime();
var uuid new java.util.Random().nextInt(90000000) 10000000;// 计算签名值
var signValue clientId : clientSecret : timestamp : uuid;// 加密签名值
var aesKey #iSn##s$olu.sm;
var cipher javax.crypto.Cipher.getInstance(AES/ECB/PKCS5Padding);
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, new javax.crypto.spec.SecretKeySpec(aesKey.getBytes(), AES));
var encryptedSign cipher.doFinal(signValue.getBytes());// 生成访问签名 (使用 Commons Codec)
var accessSign new String(Base64.encodeBase64(encryptedSign));// 将访问签名存储到变量中
vars.put(access_sign, accessSign);// 打印访问签名
System.out.println(access_sign: accessSign);
参数替换即可
Base64加密
比如MD5加密的接口文档 请求URLhttp://101.34.221.219:5000/base64login 请求方式POST 请求参数
参数名称参数值是否必须类型备注usernameadmin是string必须Base64加密处理password123是string必须Base64加密处理
1、用户名、密码不进行加密登录测试 在这里插入图片描述 用户名密码未进行Base64加密登录失败。
2、用户名密码进行Base64加密 2-1、http请求-添加-前置处理器-beanshell预处理程序 2-2、输入代码Base64加密代码固定
//Base64加密方式
import java.util.Base64;//初始化一个Base64对象调用encodeToString方法
String bs64_username Base64.getEncoder().encodeToString(admin.getBytes(UTF-8));
String bs64_password Base64.getEncoder().encodeToString(123.getBytes(UTF-8));//设置为线程组能够调用的变量
vars.put(bs64_username,bs64_username);
vars.put(bs64_password,bs64_password);//打印
log.info(bs64_username的结果是bs64_username);
log.info(bs64_password的结果是bs64_password);2-3、日志查看对比
2-4、参数替换为变量执行查看结果