我正在尝试使用 DSA 算法为我的应用程序实施许可解决方案。现在这是我所做的:
- 生成了一个硬件密钥,获取了它的哈希值。
- 生成的公钥和私钥。并用私钥加密了我的哈希函数。
- 我将此加密值与公钥一起转发回客户端。
- 在客户的系统中,我使用 DSASignatureDeformatter 的 VerifySignature 函数来验证我的加密密钥和我的硬件密钥。如果相等,我验证客户端。
现在我的问题是如何通过网络发送公钥。我试图在文件中存储和转发各种 DSAParameters 值,例如 J、G、P,但由于键的大小发生了变化,所以这是不可行的。看看有没有人可以指导。
更新:当我尝试在客户端机器上执行此操作时
DSAParameters KeyInfo;
using (DSACryptoServiceProvider DSA = new DSACryptoServiceProvider())
{
// Import the key information.
KeyInfo = DSA.ExportParameters(false);
}
它为其各种成员生成的密钥大小与我从服务器发回的公钥参数不同。