いつか販売したいアプリに取り組んでいます -- 遅かれ早かれ! それを保護するために、かなり単純なシリアル番号スキームを開発したいと思います。
- 25 ~ 30 文字以内の単純な数字と文字の組み合わせ (Microsoft のプロダクト キーを考えてください)
- 検証の一環として、ユーザーが個人情報 (電子メール アドレスなど) を入力する必要はありません。
私はこれについて少し (ほんの少し) 考えていましたが、公開鍵暗号化は始めるのに適した場所だと思います。ライセンスを識別する文字列 (SKU + プレーン ole の整数シリアル番号など) を生成し、それをハッシュして暗号化し、シリアル番号 + 識別子を 25 桁 (またはそれくらい) の英数字キーにエンコードすることができます。次に、アプリはキーをシリアル番号と「署名」にデコードし、識別子ハッシュを生成し、対応する公開キーを使用して「署名」を復号化し、生成された識別子ハッシュと比較します。
基本的に、プロダクト キーには 2 つのデータが含まれています。ユーザーが所有していると主張するシリアル番号と、プログラムがその主張を検証するために使用できる種類の署名です。25 文字の英数字 (現実的な合計 120 ビットに対してそれぞれ 5 ビットをエンコード) で十分かどうかはわかりません。ただし、暗号的に安全である必要はなく、コードが簡単に推測できない程度であれば十分です。短いキー長と短いハッシュで問題ありません。
実装に関しては、アプリは Mac OS X 用の Objective-C で書かれていますが、コードを Cocoa アプリに簡単に挿入できることを考えると、おそらく検証コードをそのまま C で書くことにします。