0

サイトのユーザーがいつでもユーザー名を変更でき、電子メールまたはパスワードでログインできるようにしたい.

Facebookでも同様の要件があるため、IDを定義する必要があります。Facebook は、登録時にユーザーに一意の番号を割り当て、その番号をさまざまな方法で使用します。

少なくとも、変更されず、ユーザーによって作成されたものではないものが必要です。したがって、必要に応じて、ユーザーはその番号で識別できます。

Facebook はこれらの数値を 1 ずつインクリメントしません。データベースの自動インクリメント int 値と同様です。ユーザー数を即座に見積もることはできず、ユーザー ID を 1 つずつインクリメントするだけではシステムをサーフすることはできないため、これは良いことです。

この状況に対処する最善の方法は何ですか?Facebookはこれをどのように行っていますか?

これを行うための一般的なアルゴリズムまたは技術はありますか?

4

2 に答える 2

2

ID は自動インクリメントされた数値として生成する必要があります。次に、その数値に可逆変換を適用して、ランダムに生成されたように見せることができます。整数 ID の難読化手法に対する受け入れられた回答は、ピアソン ハッシュを使用した良い例を示しています。

その結果、入力するのが不快なほど大きな数値になる可能性があります。たとえば、ユーザー ID 13 は 4795368201 に変換される可能性があります。それがユーザーにとって問題である場合は、base64 などを使用して結果をエンコードできます。

于 2013-08-27T20:02:18.713 に答える