JMeter - 将随机的URL安全字符串转换成Base64 URL编码的SHA-256哈希值。

问题描述 投票:0回答:1

我有一个代码校验器,是一个43个字符的随机字符串,我需要把它转换成Base64 URL编码的SHA-256哈希值,然后作为请求参数传递给我。

如何在JMeter TOOL中实现?

jmeter performance-testing sha beanshell jsr223
1个回答
0
投票

你可以使用2个函数 __RandomString 随机获取43个字符的字符串

然后 消化

${__digest(SHA-256,${__RandomString(43)},,,)}

0
投票

除了用户7294900已经给出的方法外,只需添加base64encode方法如下。

${__base64Encode(${__digest(SHA-256,${__RandomString(43,abcdefghijklmnopqrstuvwxyz0123456789,)},,,)},)}

MY 2 CENTS

JMeter有以下3个内置函数供您使用。

  1. base64Encode -> ${__base64Encode(,)}。
  2. digest -> ${__digest(,,,)}。
  3. RandomString -> ${__RandomString(,,)}。

所有这些都可以通过函数帮助程序

enter image description here

你可以以任何顺序使用它们。

  1. 生成随机字符串 -> 用SHA 256编码 -> 用Base 64编码SHA 256输出。
  2. 生成随机字符串 -> 用基数64编码 -> 用SHA 256编码基数64输出。

例子。

一阶

${__base64Encode(${__digest(SHA-256,${__RandomString(43,abcdefghijklmnopqrstuvwxyz0123456789,)},,,)},)}

对于二阶

${__digest(SHA-256,${__base64Encode(${__RandomString(43,abcdefghijklmnopqrstuvwxyz0123456789,)},)},,,)}

关于函数的怪癖。

  1. 确保明确提供必要的字符,用于RandomString的生成。否则它就会产生随机字符串,而这个字符串可能不是 "String "本身。
  2. Digest只需要输入以下定义的特定格式。

MD2 MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512

资料来源:/jmeter.apache.orgusermanualfunctions.html#__digest。https:/jmeter.apache.orgusermanualfunctions.html#__digest。

另外,如果你需要在不同的请求中重复使用这个值,那么一定要把它存储在一个变量名中。当你使用函数助手时,你应该可以看到这个选项。


希望这对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.