JMeterでsha256ハッシュを作成する。
環境:
Windows7 + JMeter2.13
JMeterで時間経過で変わるハッシュを都度生成したい。
前処理からBeanShell PreProcessorを選択し、下記の処理を記述した。
import java.security.MessageDigest;
import java.util.;
import java.text.;
//csv data set config等で設定したパラメータを取得する。
String id = vars.get("id");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
String d = sdf1.format(new Date());
String str = d+id;
//現在時刻とあわせてハッシュ化
byte[] bytes = MessageDigest.getInstance("SHA-256").digest(str.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
//String.formatが使えないので頑張る。ffffffがなぜか大量に出ていたので消去
String hexStr = Integer.toHexString(b).replaceAll("ffffff","");
String hex = (hexStr.length() == 1) ? "0" + hexStr : hexStr;
sb.append(hex);
}
String hash= sb.toString();
//
vars.put("hash",hash);
更に子要素に追加したBeanShell PreProcessor内では上記で作成したhashパラメータを読み込めなかったので注意が必要。
MD5・sha-1等MessageDigestで扱えるものであれば他にも作成可能と思われる。