私たちのアプリでは、png 画像と ~200 文字のバイト配列が渡されます。200文字のファイル名が必要ないため、そのバイト配列に対応するファイル名で画像を保存しますが、バイト配列自体は保存しません。だから、私が考えたのは、bytearrayをデータベースに保存してから、MD5で短いファイル名を取得することでした。特定の画像を表示するときが来たら、そのバイト配列、MD5 を調べてから、そのファイルを探します。
ここまでは順調ですね。問題は、2 つの異なる bytearray が同じ MD5 にハッシュされる可能性があることです。次に、あるファイルが別のファイルを効果的に上書きします。それとも彼らはできますか?私の質問は
- 2 つの ~200 文字のバイト配列 MD5 ハッシュを同じ文字列にすることはできますか?
- もし可能なら、それは宇宙の 10 年代に 1 回のような取引ですか、それとも私のアプリで起こりうることですか?
- 一意であることが保証されている (たとえば) 32 文字の文字列を生成するハッシュ アルゴリズムはありますか?