Rubyで変数の署名文字列を作成する必要があります。変数は、数値、文字列、ハッシュ、または配列にすることができます。ハッシュ値と配列要素もこれらのタイプのいずれかになります。
この文字列は、データベース(この場合はMongo)の値を比較するために使用されます。
私の最初の考えは、次のように、JSONでエンコードされた値のMD5ハッシュを作成することでした:(本体は上記で参照されている変数です)
def createsig(body)
Digest::MD5.hexdigest(JSON.generate(body))
end
これはほぼ機能しますが、JSON.generateは毎回同じ順序でハッシュのキーをエンコードしないため、createsig({:a=>'a',:b=>'b'})
常に等しいとは限りませんcreatesig({:b=>'b',:a=>'a'})
。
このニーズに合う署名文字列を作成するための最良の方法は何ですか?
注:私たちの間で重視されている詳細についてはJSON.generate()
、数字や文字列は使用できないことを知っています。このような場合は、MD5.hexdigest()
直接電話します。