あの14桁のシリアルナンバーを使う手法はどこかの会社が特許か何かとっていて、皆そこのソリューションを使っている、と言うような話を以前どこかで見た気がします。
が、今探してもそれが見つかりません(とくシリアルのD2コミュニケーション社は、現在取り扱いを止めているようです)。
14桁のシリアルナンバーでユーザアクセスを管理するソリューションを展開しているところをご存知でしたら、教えてください。
或いは、特に特許等で守られていないようであれば、一意でかつ偽造されないような14桁のシリアルナンバーを作り出すアルゴリズムがあれば、教えてください。
ちょっと検索してみましたが、こんなところでしょうか。
http://www.baby-universe.co.jp/ja/plug-in/products/sbc/
http://jp.sun.com/solutions/retail/funamoto/gtin.html
http://barcode-news.seesaa.net/article/38632123.html
http://ds.multi-bits.com/ds/execute/Catalog;jsessionid=76BCF6A1B...
シリアルナンバーを作る、というよりもバーコードを作るソフトメインの紹介に
なっていますが、チェックデジットを固定して一括作成すれば、ある程度ランダムの
シリアルナンバーが作れるのではないでしょうか。
アルゴリズムをお知りになりたいのであれば的外れかもしれませんが、シリアル生成の手段ということなら、以下のようなツールがあります。
http://www.vector.co.jp/soft/win95/util/se112992.html
アルゴリズムについては、本件の目的(背景)に依存すると思います。
この問題は、
「L進数M桁の数値からN個をを選び、その数値を実用的な時間でユーザに悟られないものにする」
と表現できます。
これは、L^M(LのM乗)個の数値からM個をランダムに選択する問題です。
1.数学的考察
乱数発生の数学的アルゴリズムについての話となります。
簡単にご説明するのは困難ですが、「乱数発生」で検索をかければ、いろいろなアルゴリズムが存在することがわかります。
2.プログラミング的考察
たいていのプログラミング言語では乱数発生関数を備えているので、それを使うのが簡単です。
ただ、標準の乱数発生関数はアルゴリズム的に偏りがある場合があるため、強度を求めるなら独自にアルゴリズムを記述する必要がでてきます。
3.マーケティング的考察
商品キャンペーン等を想定したマーケティング的考察であれば、シリアル生成アルゴリズム自体より、L、M、Nをどう設定すれば妥当かという話になります。
LとMから、L^M種類の数値が考えられるなか、実際に採用するのはN個です。
そこで、ユーザがシリアルを力技で端から入力し続けるなどして商品を購入しないことが内容に、L、M、Nを決める必要があります。
例:
商品の価格:100円
ユーザが不正入力する場合、時給1000円で労力を計算
ウェブページからシリアルを入力し、レスポンスを返す時間を5秒
3回連続で間違えたら、45秒は入力できない
この前提で、正しいシリアルにたどり着くのに100円相当以上の労力がかかるなら、商品を購入したほうがましと考えられる。
時給1000円→100円で6分
6分で投入できる件数は18件
よって、確率1/18以上なら労力に見合わない。
→N/L^M>1/18となるように決める
実際には、以下のような要素も必要になると思います。
・商品を買いに行く時間も、ユーザがコストとみなすか?
・商品を購入し廃棄する手間・費用もユーザがコストとみなすか?
・キャンペーン商品数が限られている場合は、入手困難性から不正入力を選択する可能性はないか?
この回答が参考になれば幸いです。
乱数を7桁,7桁で出力して、ユニークとなるようにして、DBに格納しているような仕組みのような気がします。
意外ににシンプルな気がします。(想像です)
URLはダミーです。
http://www.google.co.jp/search?hl=ja&q=%E3%82%AD%E3%83%A3%E3%83%...
14桁ではないのですが、20桁のシリアルナンバーソリューションでしたら
メディアシークが持っています。
子会社のスタートメディアジャパンが「瞬間ハッピー」という、モバイル/PCキャンペーン用ソリューションを
リリースした時のニュース記事がこちら。
コメント(0件)