2007年6月19日火曜日

ウェブキャンペーン用にシリアルキーを生成する

仕事で「キャンペーン対象ユーザーに対してシリアルキーを配布し、ユーザーがそのシリアルキーを使ってキャンペーンに応募することができる」というLAMPのウェブアプリケーションを作ることになりました。
最近よく見かける、缶コーヒーとかお菓子のキャンペーンみたいなのとほぼ同じ内容です。(規模はぜんぜん違いますが)
シリアルキーというのはWindowsやOfficeなどのPCソフトのシリアルキーのようなもの。たとえば「7RI15XRME8DHRI2F」という感じで、悪用できないようランダムで予測できないものが必要になります。
最初はMySQLの関数やphpの関数(md5とか)を使ってシリアルキーを作ろうと試みていたのですが、どうしても桁数が長くなってしまい(今回の要件では、シリアルコードは12文字以内)うまくいきませんでした。
そこでアプローチを変えて、Windows上で動作するアプリでシリアルキーを生成するソフトがないか捜してみたところ、「シリアルメーカー」というソフトを発見。
http://www.vector.co.jp/soft/win95/util/se154808.html
これだっ!!!
。。。と思ったんですが、シリアル作成にものすごい時間がかかることが判明。1万件の生成で20分以上かかりました。
そこでもう少し探してみたところ、同じ機能で高速な「RANer」というソフトを見つけました。
http://www.vector.co.jp/soft/win95/util/se112992.html
シリアルキー作成ではなくパスワード作成のためのソフトのようですが、問題なく使えます。
こちらは100万件のシリアルキー生成も1分程度で済みました。詳しいことはわかりませんが、たぶんアルゴリズムが根本的に違っているんでしょう。
あとは生成したシリアルキーをファイル保存し、MySQLにインポートして使うだけ。
こうしたキャンペーンアプリ構築は初めてだったので、一時はどうなることかと思いましたがなんとか実装できました。ふぅ

1 件のコメント:

  1. Hello! I'm at work browsing your blog from my new iphone 3gs!
    Just wanted to say I love reading your blog and look forward
    to all your posts! Keep up the fantastic work!

    返信削除