1

自動インクリメントされた ID (int) があり、それを「マイニング可能」ではないものに変換したいと考えています。基本的に、人々が data/0、data/1、data/2 などにアクセスして、データベース全体をリッピングできるようにしたくありません。ID をハッシュ化することだけを考えていましたが、一意性を保証できるかどうかわかりませんでした。

値の範囲が 1 億から数億であるとしましょう。ハッシュ アルゴリズムの 1 つが、これらのパラメータ内での一意性を保証できる可能性があります。

そうでない場合、どのようなアプローチを取るのが良いでしょうか?

ハッシュしてからIDを追加することを検討しました。

既存のコードに多くの変更が必要になるため、GUID の使用を避けようとしています。そのため、所有しているデータを変換したいと考えています。

編集:

状況をさらに説明すると、これらはヒットしている静的リソースです。データベースに行って逆にしたり、他のものと照合したりする必要はありません。製品のリストを想像してみてください。ユーザーは特定のページへのリンクを持っているかもしれませんが、プログラムですべてのページを通過できるようにしたくないので、増分しない ID が必要です。

4

2 に答える 2

0

私の知る限り、ハッシュは具体的なデータ (名前、姓など) に基づいて一意の ID を作成することを目的としています。自動インクリメントされた ID をハッシュしてもあまり役に立ちません。自動インクリメントされた ID を入力してデータベースを検索すると、その ID がパラメーターとしてハッシュ関数に渡され、必要なデータが取得されます。したがって、一意の ID を取得するために他のデータをハッシュすることがより良い解決策だと思います。そうする場合、データベースを検索する人は、そこに保存されている正確なデータを知っている必要があります (たとえば、従業員の正確な名前または SSN を知っている必要があります)。

それが役立つことを願っています!

于 2012-09-28T21:51:40.983 に答える
0

逆引きが必要ない場合は、疑似ランダムを使用して、ハッシュする前に値をソルトします。

于 2012-12-05T05:22:38.023 に答える