0

アプリケーションにDSAアルゴリズムを使用してライセンスソリューションを実装しようとしています。これが私がしたことです:

  1. ハードウェアキーを生成し、そのハッシュを取得しました。
  2. 生成された公開鍵と秘密鍵。そして、秘密鍵でハッシュ関数を暗号化しました。
  3. この暗号化された値を公開鍵とともにクライアントに転送します。
  4. クライアントのシステムでは、DSASignatureDeformatterのVerifySignature関数を使用して、暗号化されたキーとハードウェアキーを検証します。等しい場合、私はクライアントを検証します。

今私の問題は、ネットワークを介して公開鍵を送信する方法です。J、G、PなどのさまざまなDSAParameters値をファイルに保存して転送しようとしましたが、キーのサイズが変わるため、それは実行可能ではありません。誰かがガイドできるかどうか見てください。

更新:クライアントのマシンでこれを実行しようとすると

    DSAParameters KeyInfo;
    using (DSACryptoServiceProvider DSA = new DSACryptoServiceProvider())
    {

        // Import the key information.
        KeyInfo = DSA.ExportParameters(false);
    }

さまざまなメンバーに対して生成されるキーサイズは、サーバーから返送した公開キーパラメーターとは異なります。

4

1 に答える 1

1

わかった。少し遅れた。しかし、おそらく他の人も同じ質問をするでしょう。

次のようにキーをエクスポートするだけです。

string publicKey = DSA.ToXmlString(false);

次のようにインポートできます。

using (DSACryptoServiceProvider dsa = new DSACryptoServiceProvider())
{
    dsa.FromXmlString(publicKey);
    return dsa.VerifySignature()
}
于 2014-06-18T15:55:06.230 に答える