0

私は、ユーザーがシリアルキーを正しく入力した場合にのみユーザーが認証されるアプリケーションを開発しています。このシリアルキーは、データベースにすでに存在するシリアルキーと一致します。このシリアルキーは、6桁の数字と3つのアルファベットで構成されている必要があります。ユーザーは私からこれらのキーを書面で受け取ります。

多数(約1億)のシリアルキーを生成するにはどうすればよいですか?

4

2 に答える 2

0

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

  1. 範囲内で目的の番号を見つけて、そのままにし[1,10000000)ておくxと、6桁の数字が表示されます。
  2. 3文字を検索します(範囲azを想定します)。それらをa,b,c
  3. あなたの番号は(a-'a' + b-'a'*26 + c-'a'*26*26)*10000000 + x

(ここで、「a」は文字のASCII表現であり、'a'a-「a」は数値のASCII減算を意味します)

long生成された数値は、 64ビットであると仮定すると-に収まる場合もあることに注意してください。


いくつかの数の生成は、反復で簡単に行うことができ、、、a=b=c='a'およびx=0で始まり、前進を開始します(1ずつ増加します)。に達したらx=10000000、aを増やし、azを渡した場合はb、...を増やします(通常の整数加算演算で行うのと同様です)。

于 2012-12-28T11:34:35.810 に答える
0

キーを生成するのと同じように、安全な乱数ジェネレーターを使用できSecureRandomます。

しかし、コメントですでに述べたように、その数のキーを生成する場合、すべての可能なキーのスペースはそれほど大きくありません。そのため、攻撃者は、機能するキーが見つかるまでキーを試すのが簡単になります。

于 2012-12-28T11:39:31.213 に答える