tlshdiff()

tlshdiff() 関数は、2 つの TLSH ハッシュ文字列間の類似度スコアを整数で返します。

構文

tlshdiff(HASH1, HASH2)

パラメータ

HASH1
比較する 1 つ目の TLSH ハッシュ文字列です。
HASH2
比較する 2 つ目の TLSH ハッシュ文字列です。

説明

tlshdiff() 関数は、2 つの TLSH ハッシュ文字列を比較して類似度スコアを整数で返します。スコアが低いほど 2 つのデータが類似していることを示し、0 であれば同一のデータです。スコアが高いほど 2 つのデータの差異が大きいことを意味します。

HASH1 または HASH2null または文字列型でない場合は null を返します。無効な TLSH ハッシュ文字列を渡した場合や比較中にエラーが発生した場合は -1 を返します。

tlsh() 関数で計算したハッシュ文字列をこの関数に渡して、2 つのデータの類似度を測定できます。

エラーコード

該当なし

使用例

  1. 2 つのファイルの類似度を比較します。

    logdb://files
    | eval h1 = tlsh(file1_content), h2 = tlsh(file2_content),
           diff = tlshdiff(h1, h2)
    | # diff: 45
    
  2. 同じハッシュを比較します(類似度 0)。

    json "{}"
    | eval data = randbytes(256),
           h = tlsh(data),
           diff = tlshdiff(h, h)
    | # diff: 0
    
  3. null 入力

    json "{'h1': null, 'h2': 'T1A3E...'}" | eval diff = tlshdiff(h1, h2)
    | # diff: null
    
  4. 無効なハッシュ文字列

    json "{}" | eval diff = tlshdiff("invalid", "invalid")
    | # diff: -1
    

変更履歴

tlshdiff() 関数は Sonar 4.0.2308.0-u3043 から使用可能です。