Jmeter如何生成哈希sha512

时间:2017-09-28 06:18:59

标签: jmeter sha512

我需要在jmeter中为许多请求创建测试,我需要在头文件中创建包含pass的帖子请求,它应该是来自user + someid + someid的哈希sha512。我需要在每个请求中更改用户,所以我只需添加Header Manager user${__threadNum},它看起来很好,但我需要在下一个帖子请求中生成哈希。我正在搜索它应该可以通过beanshell脚本或jsr223预处理器,但我不是很熟悉脚本或java。

2 个答案:

答案 0 :(得分:2)

自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();
   }

答案 1 :(得分:0)

使用JMeter 4.O,只需使用函数__digest

  

$ {__ digest(SHA-512,字符串到哈希,,,)}