繁体   English   中英

DSA和公钥交换

[英]DSA and Public Key Exchange

我正在尝试为我的应用程序使用DSA算法实现许可解决方案。 现在这是我所做的:

  1. 生成一个硬件密钥,并对其进行哈希处理。
  2. 生成的公钥和私钥。 并用私钥加密我的哈希函数。
  3. 我将此加密值与公用密钥一起转发回客户端。
  4. 在客户端系统上,我使用DSASignatureDeformatter的VerifySignature函数来验证我的加密密钥和硬件密钥。 如果相等,我验证客户。

现在我的问题是如何通过网络发送公钥。 我试图在文件中存储和转发各种DSAParameters值,例如J,G,P,但是由于键的大小发生了变化,因此不可行。 请看看是否有人可以指导。

更新:当我尝试在客户端计算机上执行此操作时

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

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

它为其各种成员生成的密钥大小与我从服务器发回的公钥参数不同。

好的。 有点晚了。 但是也许其他人会有同样的问题。

您应该像这样导出密钥:

string publicKey = DSA.ToXmlString(false);

因此您可以像这样导入它:

using (DSACryptoServiceProvider dsa = new DSACryptoServiceProvider())
{
    dsa.FromXmlString(publicKey);
    return dsa.VerifySignature()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM