アプリケーションにDSAアルゴリズムを使用してライセンスソリューションを実装しようとしています。これが私がしたことです:
- ハードウェアキーを生成し、そのハッシュを取得しました。
- 生成された公開鍵と秘密鍵。そして、秘密鍵でハッシュ関数を暗号化しました。
- この暗号化された値を公開鍵とともにクライアントに転送します。
- クライアントのシステムでは、DSASignatureDeformatterのVerifySignature関数を使用して、暗号化されたキーとハードウェアキーを検証します。等しい場合、私はクライアントを検証します。
今私の問題は、ネットワークを介して公開鍵を送信する方法です。J、G、PなどのさまざまなDSAParameters値をファイルに保存して転送しようとしましたが、キーのサイズが変わるため、それは実行可能ではありません。誰かがガイドできるかどうか見てください。
更新:クライアントのマシンでこれを実行しようとすると
DSAParameters KeyInfo;
using (DSACryptoServiceProvider DSA = new DSACryptoServiceProvider())
{
// Import the key information.
KeyInfo = DSA.ExportParameters(false);
}
さまざまなメンバーに対して生成されるキーサイズは、サーバーから返送した公開キーパラメーターとは異なります。