ハッシュ関数
文章、画像、映像などの何かしらのメッセージをある一定の固定長の値を返す関数。
暗号学的ハッシュ関数
ハッシュ関数のうち、暗号など情報セキュリティの用途に適する暗号数理的性質をもつものを暗号学的ハッシュ関数という。
任意の長さの入力を固定長の出力に変換する。
暗号学的ハッシュ関数の特性
- 原像計算困難性 (preimage resistance) 生成されたハッシュ値から原像元の任意のメッセージを探すことが困難であること。
- 第2原像計算困難性 任意のメッセージから生成されるハッシュ値と同じハッシュ値を生成するメッセージを探すことが困難であること。
GROWI で使われるハッシュ関数
GROWI では、src/client/js/components/User/UserPicture.jsx external_link で MD5 を用いたハッシュ関数が用いられている。
generateGravatarSrc(user) { const email = user.email || ''; const hash = md5(email.trim().toLowerCase()); return `https://gravatar.com/avatar/${hash}`; }
Gravatar external_link では、一貫したハッシュを生成することで、画像またはプロファイルを要求できる。
Once you have generated a consistent hash, you can then request either an image or a profile.