【PHP8.x】sodium_crypto_shorthash関数の使い方

作成日: 更新日:

sodium_crypto_shorthash関数は、指定されたメッセージの短いハッシュ値を、秘密鍵を用いて高速に計算する関数です。この関数は内部でSipHash-2-4アルゴリズムを利用しており、主にハッシュテーブルのようなデータ構造で利用するキーを安全に生成する目的で使用されます。第一引数にハッシュ化する対象のメッセージを、第二引数に16バイトの秘密鍵を渡して使用します。この秘密鍵は、sodium_crypto_shorthash_keygen()関数などを使って事前に生成しておく必要があります。関数が成功すると、8バイトの短いハッシュ値がバイナリ文字列として返されます。この関数は非常に高速に動作し、秘密鍵を用いることで、鍵を知らない第三者による意図的なハッシュ衝突攻撃(ハッシュDoS攻撃)に対して耐性を持つという特徴があります。ただし、出力されるハッシュ値が短いため、デジタル署名やパスワードのハッシュ化など、より高い衝突耐性が求められる暗号学的な用途には適していません。これらの用途には、代わりにsodium_crypto_generichash()関数などの使用が推奨されます。

基本的な使い方

構文(syntax)

1sodium_crypto_shorthash(string $message, string $key): string

引数(parameters)

string $message, string $key

  • string $message: ハッシュ化する対象のメッセージ文字列
  • string $key: ハッシュ化に使用するキー文字列

戻り値(return)

string

指定された入力データに対して、高速なハッシュ値を生成し、その結果を文字列として返します。

【PHP8.x】sodium_crypto_shorthash関数の使い方 | いっしー@Webエンジニア