2017-11-03 36 views
0

リクエストボディのハッシュ値を持つhttpヘッダーが必要なapi sericeを呼び出しています。JMeter BeanShell SHA-256の異なるハッシュ値

JMeterでbeanshellポストプロセッサを使用して、リクエストボディのsha-256ハッシュを自動的に作成しようとしています。ハッシュ値は、リクエスト本文に改行が入るまで(つまり、JSONメッセージが複数の行にまたがる痛みです)、ハッシュ値は正しく表示されます。

私はそれが隠れた文字と関係していると思いますが、うまくいかない何がうまくいかない!私は改行があるまで、それが完全に一致するハッシュジェネレータツールを区切るためにはJMeterによって生成されたハッシュを比較すると:(

は、その後、JMeterは間違っている。ラインがあるとき

はなぜJMeterは間違ったハッシュ値を生成しています休憩

私のコードは次のとおりです。??

[import org.apache.commons.httpclient.auth.DigestScheme; // necessary imports 
import org.apache.commons.codec.binary.Base64; 
import org.apache.commons.codec.digest.DigestUtils; 
import org.apache.jmeter.protocol.http.control.Header; 
import org.apache.jmeter.services.FileServer; 
import javax.xml.bind.DatatypeConverter; 
import java.security.*; 

String body = sampler.getArguments().getArgument(0).getValue(); 
String hash = DigestUtils.sha256Hex(body); 
log.info(hash); 
+0

本当にあなたが知りたいことを得ることはできません... – ivoruJavaBoy

+0

私のリクエストボディで改行が不正なsha 256ハッシュを生成するのはなぜですか? – David

+0

WindowsとLinuxの改行は異なります。詳細をお知らせください。 – user7294900

答えて

0

ご入力データであり、あなたはどのような出力を期待しない何

SiのNCE JMeter 3.1it is recommended to switch to JSR223 Test Elements and Groovy languageので:

{ 
    "foo": "bar" 
} 
  • そして、SHA-256の16進文字列を生成するために、次のGroovyコード:

    def sha256Hex = { input -> 
        java.security.MessageDigest.getInstance("SHA-256") 
        .digest(input.getBytes("UTF-8")).encodeHex().toString() 
    } 
    log.info(sha256Hex(sampler.getArguments().getArgument(0).getValue())) 
    
    1. 次のリクエストボディを考えます私は012を使用して見ることができる基本的に同じですdbc67f71c921b5b7649481a5123d94dfa919748d2962889681d96438033c548f値を得ていますジェネレータ。

    +0

    ありがとう、私はGroovyを使用するように変更し、あなたの名前のハッシュを取得しています。私がハッシュと比較するために使っていたオンラインツールは、https://www.tools4noobs.com/online_tools/hash/でしたが、これはリンク先のツールとは異なるハッシュを生成します。どんな考え? – David

    +0

    私は2つの異なるハッシュジェネレータ[http://www.xorbin.com/tools/sha256-hash-calculator](http://www.xorbin.com/tools/sha256-hash-calculator)と[http: /passwordsgenerator.net/sha256-hash-generator/](http://passwordsgenerator.net/sha256-hash-generator/)そして、彼らは両方ともサンプルリクエストボディについて同じ答えを持っています....? –

    関連する問題