在JMeter中,javamd5散列函数并不总是有正确的沉默
在Jmeter中,我试图生成一个用于加载Mapi的令牌,但该令牌并不总是具有所需的长度。一个测试令牌是:在JMeter中,javamd5散列函数并不总是有正确的沉默,java,jmeter,md5,Java,Jmeter,Md5,在Jmeter中,我试图生成一个用于加载Mapi的令牌,但该令牌并不总是具有所需的长度。一个测试令牌是: “b7d5cd060b01289825e0ec1f6b126ca”,另一个是 “de8520a143583f1239b95bcc02b36eeb” 第二个长1个字符 我的职能: import java.util.Date; import java.security.MessageDigest; import java.math.BigInteger; long str = System.c
“b7d5cd060b01289825e0ec1f6b126ca”,另一个是
“de8520a143583f1239b95bcc02b36eeb” 第二个长1个字符 我的职能:
import java.util.Date;
import java.security.MessageDigest;
import java.math.BigInteger;
long str = System.currentTimeMillis() / 1000L;
String Timestamp = Long.toString(str);
//System.out.println(Timestamp);
String seconds2 = str + "8fo9aw8uefawejfoi";
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(seconds2.getBytes());
BigInteger hash = new BigInteger(1, md5.digest());
String Token = hash.toString(16);
//System.out.println(Token);
vars.put("Timestamp", Timestamp);
vars.put("Token", Token)
扩大我对问题的评论。。。尝试在Beanshell中使用此选项:
import java.util.Date;
import java.security.MessageDigest;
import java.math.BigInteger;
private void TokenGeneration(Long s) {
String seconds2 = String.valueOf(str) + "8fo9aw8uefawejfoi";
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(seconds2.getBytes());
BigInteger hash = new BigInteger(1, md5.digest());
String Token = hash.toString(16);
if (Token.length() == 32)
vars.put("Token", Token);
else
TokenGeneration(s);
}
long str = System.currentTimeMillis() / 1000L;
String Timestamp = Long.toString(str);
vars.put("Timestamp", Timestamp);
TokenGeneration(str);
为什么不做一个递归函数来生成令牌,它将检查长度是否为16,如果为假,重复这个过程,如果为真,将令牌放入变量中?非常感谢您的快速回答!我使用了java(Beanshell),但令牌没有生成..:(愚蠢的错误…:-)我在16点检查长度,它永远不会是16只需替换为您所需的长度,我将编辑为32。对不起,伙计!