私が働く会社は、登録プロセスを作成したいと思います。最終的には、ユーザーは自分の製品をアクティブにするためにキーを入力する必要があります。可能な限り小さなデジタル署名でCに署名する#
私はすでにキーを生成する方法を説明しているソースをほとんど探していませんでした。そのうちの1人(登録データとハードウェア情報を組み合わせたもの)を取ってデータのハッシュを秘密鍵で暗号化し、そのすべてに対してbase32エンコーディングを計算することを提案しました(How to generate and validate a software license key?)。
したがって、プログラムにキーが入力されると、base32をデコードし、データを超えてハッシュを計算し、公開鍵を使って鍵の署名が有効であることを確認しますアウトカンパニー)。
私はBouncy城について知っていますが、実際にはSchnorrの実装はありません(実際には、C#のif実装の多くは見つかりませんでした)。小さな署名を作るための私の努力はすべて失敗しました(私が作成した最小の署名は56バイトでした)。
したがって、データ+シグネチャが64バイトと仮定します。私のベース32の文字列は、64 * 8/5になります。これは、103文字の余分な区切り文字で区切られ、読みやすくするために、必要な場合には読み込みできないものがあります。
私は何が欠けていますか? 32文字のキーを作成する必要がある場合は、20バイトのデータ+ハッシュが必要です。
どうすればよいですか?
.net暗号化やBouncy Castle(C#のマニュアルや例がない)を使用する例が参考になります。
それも助けることができるかどうかを確認するために、しかし、私はすでに良い解決策を持っています – Saragani