0

最近、Google AdWordsがプロモーションコードを共有しているのを見ました。これにより、200ドルで公開できます。

質問はこれです:明らかに、コードは文字の大きな組み合わせであり、次のようなものです。9842 - a251 - b51s - 1250他の入力を試みても、それらが与えるものは失敗し、コードが無効であることを示します。もちろん、「ロボット」にコードを生成させたくないので、それは良いことです。

では、このようなことを行うためのベストプラクティスは何ですか?私は大量の文字を考えて使用しており、それらをランダムなシーケンスで生成することは可能ですが、いくつかの「確率的」モデルの方が適していると思います。

それがどのように適切に行われるか知っていますか?

皆さん、ありがとうございました!

4

3 に答える 3

1

最も簡単な方法は次のとおりです。

  1. アルファベットを設定する

    string alpha = "0123456789abcdefghijklmnopqrstuvwxyz";

  2. 最終的なコードの長さを設定します

    int final = 16; string code="";

  3. アルファベットから文字を生成する

int i = final;
while( i-->0 ){
string += alpha[ Math.random(0,alpha.length) ]
}
于 2011-10-11T11:58:13.210 に答える
1

これを行う最も安全な方法は、暗号化PRNGを使用して、十分に長いランダムコード(理想的には少なくとも128ビット)を生成し、有効なIDのリストをデータベースに保存することです。誰かがコードを入力したら、それをDBと照合して、使用済みとしてマークします。

于 2011-10-11T23:33:03.140 に答える
0

固定文字列に連結されたauto-inc番号のハッシュを取得します。

「私の長い無意味な文字列0000001」

「私の長い無意味な文字列0000002」

ハッシュは、ほぼ同一の文字列から大きく異なるコードを生成するのに適しています。重複がある場合は、それを破棄します。

于 2011-10-11T13:39:20.163 に答える