Jmeter如何生成哈希sha512
Jmeter how to generate hash sha512
我需要在 jmeter 中为许多请求创建测试,我需要创建 post 请求,它将在 header 中包含 pass
,它应该是来自 [=11 的哈希 sha512 =].我需要在每个请求中更改用户,所以我只需添加 Header 管理器 user${__threadNum}
,它看起来不错,但我需要在下一个 post 请求中从中生成哈希。我正在搜索应该可以通过 beanshell 脚本或 jsr223 预处理器,但我对脚本或 java.
不是很熟悉
从 JMeter 4.0 开始,更简单的答案是:
以前的版本:
使用Java语言添加JSR223 Sampler,使用vars.get("password")
传递变量password和salt,使用此代码变量generatedPassword
将保存生成的新散列
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
String passwordToHash = vars.get("password");
String salt= vars.get("salt");
String generatedPassword = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(salt.getBytes("UTF-8"));
byte[] bytes = md.digest(passwordToHash.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
for(int i=0; i< bytes.length ;i++){
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
generatedPassword = sb.toString();
log.info(generatedPassword);
vars.put("generatedPassword", generatedPassword);
}
catch (NoSuchAlgorithmException e){
e.printStackTrace();
}
使用 JMeter >= 4.0,只需使用函数 __digest:
${__digest(SHA-512,string to hash,,,)}
我需要在 jmeter 中为许多请求创建测试,我需要创建 post 请求,它将在 header 中包含 pass
,它应该是来自 [=11 的哈希 sha512 =].我需要在每个请求中更改用户,所以我只需添加 Header 管理器 user${__threadNum}
,它看起来不错,但我需要在下一个 post 请求中从中生成哈希。我正在搜索应该可以通过 beanshell 脚本或 jsr223 预处理器,但我对脚本或 java.
从 JMeter 4.0 开始,更简单的答案是:
以前的版本:
使用Java语言添加JSR223 Sampler,使用vars.get("password")
传递变量password和salt,使用此代码变量generatedPassword
将保存生成的新散列
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
String passwordToHash = vars.get("password");
String salt= vars.get("salt");
String generatedPassword = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(salt.getBytes("UTF-8"));
byte[] bytes = md.digest(passwordToHash.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
for(int i=0; i< bytes.length ;i++){
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
generatedPassword = sb.toString();
log.info(generatedPassword);
vars.put("generatedPassword", generatedPassword);
}
catch (NoSuchAlgorithmException e){
e.printStackTrace();
}
使用 JMeter >= 4.0,只需使用函数 __digest:
${__digest(SHA-512,string to hash,,,)}