、伝統的にシリアル番号シリアルナンバーです。だから、生産ラインからの最初の例はsn 0001であり、次のものは0002であり、次のものは0003です。私はほとんどの人がそのアルゴリズムを解くことができると思います。
私はあなたが実際に公開鍵メッセージ署名に似た仕組みを使用するプロダクトキーを求めていると思います - プロダクトキーは暗号化された値です。プログラムは公開鍵を持っており、ソフトウェアベンダーだけがプロダクトキーに「署名する」秘密鍵を持っています。 digital signaturesに関するウィキペディアの記事には一般的な仕組みがあります。唯一の条件は、ユーザによって入力されるキーがPGPよりもかなり短くなければならないということです。
非常に短いシリアル番号に制限されている場合は、通常の署名メカニズムの結果を格納するのに十分な大きさではないでしょう。この場合、チェックサムの変形を使用するのが一般的です。これは、リバースエンジニアリングが容易であるという欠点があります。その理由は、アルゴリズムが暗号特性のためではなく「秘密」であるためです。各製品には独自のアルゴリズムがあり、通常はかなり早く割れてしまいます。
5文字のブロックが5個ある場合、36^25の組み合わせが2^128より大きいため、標準デジタル署名アルゴリズムの1つを使用して128ビットを生成し、その値をベース36.
シリアル番号はどのようなコンテキストで使用されますか?それは単なる識別子か、安全なタイプのもの(Windows登録キーのようなもの)であることを意味していますか? – TofuBeer
何をしても、一番左の桁はゼロでないようにして、 "コード"は数字として解釈されず、Excelや他のフォーマットにインポートすると消えます。私はそれが私たちがたくさん使っている私の業界の最大の問題の1つだと分かっています。すべてのシリアル番号を1で始めることを学びました。最近、悪いシリアル番号をリリースしたビデオゲームがあり、このような問題に遭遇した可能性があります。 –