我想创建2个非常简单的DLL:

1)将签署XML文档2)将检查XML文档尚未修改。

我尝试使用rsacryptoserviceprovider和一个钥匙容器。但是,当我移动到另一台机器上时,这不起作用,因为钥匙被存储在计算机中。

我想将密钥存储在dlls im创建中(我知道这不是推荐的),但是我只是无法弄清楚如何编写一些代码以简单地签署XML文档,然后验证它没有被更改。

那么,我需要使用对称键做我想做的事情吗?

皮特

有帮助吗?

解决方案

您已经提到了将私钥存储在DLL中的问题,因此我不会重复。

做这个:

在您自己的机器上运行此代码:

var key = new RSACryptoServiceProvider(2048);
string publicKey = key.ToXmlString(false);
string privateKey = key.ToXmlString(true);
Console.WriteLine(publicKey);
Console.WriteLine(privateKey);

这将输出两(长)线。将它们复制到您的代码中:

符号:

var privateKey = new RSACryptoServiceProvider();
privateKey.FromXmlString(/* insert the private-key XML string here */ );
privateKey.SignData(/*...*/);

核实:

var publicKey = new RSACryptoServiceProvider();
publicKey.FromXmlString(/* insert the public-key XML string here */ );
publicKey.VerifyData(/*...*/);

其他提示

如果只是要验证您的XML文档尚未修改一个简单的文档 MD5校验和 (或任何其他好的哈希算法)将更容易实施,并且是您所需要的。在不同的机器上也可以验证。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top