1

私はシンプルで、明確で、直接的であるように努めます。私の問題は次のとおりです。スクラッチ カードのコードを生成する必要があるプロジェクトがあります。スクラッチ カードは、携帯電話の充電に使用するものと同じように印刷されています。

システムは、人々がカードを購入し、カードのコードを取得し、TOIP サーバー (アスタリスク) を呼び出してコードを挿入し、サービスにアクセスするというものです。正しいコードの入力を 3 回試行します。

これらのコードを生成する PHP プログラムを作成しようと考えたので、必ず PRNG (Pseudo Random Number Generator) を経由する必要があります。私の制約は次のとおりです。

-人々が電話をかけているので、コードは長すぎてはいけませんが、セキュリティを確保するのに十分な長さであるべきです.

-入力されたコードとデータベースに保存されているコードを比較するときに、システムが十分に高速である必要があります (統計目的で必要です)。

だから私の質問は:

-PRNG を使用するのは正しいですか?

- はいの場合、適切な乱数を生成するのに十分強力なものを知っていますか?

-業界で使用されている標準は何ですか?

-比較が何百万ものコードで行われる場合、比較アルゴリズムを十分に高速にするにはどうすればよいですか?

お時間とご回答ありがとうございます。

4

1 に答える 1

3

はい、PRNG は少し調整すれば問題なく動作します。

http://en.wikipedia.org/wiki/Random_password_generator

上記のリンクでパスワード生成コードを参照できます。最初の桁が 0 でないことを確認し、アルファベットではなく数字のみを使用する必要があります。

数値が生成されたら、挿入する前にDBに存在するかどうかを確認する必要があります。

通常、業界では 16 文字/桁が使用されます。プロセス全体を高速化するために、20 桁の数字を生成することもできます。

マッチングを高速化するには、データベース内のフィールドにインデックスを付ける必要があります。ほとんどの場合、char(16) または char(20) になります。

注 : ここでは varchar は必要ないため、char が最適なオプションです。

迅速な比較のために、Mysql テーブル エンジンを MYISAM のままにします。

于 2011-09-20T21:06:22.430 に答える