我想创建 2 个非常简单的 dll:
1) 将签署一个 xml 文档2) 将检查 xml 文档是否未被修改。
我尝试使用 RSACryptoServiceProvider 和 key 容器。但是当我移动到另一台机器时,这不起作用,因为 key 存储在机器中。
我想将 key 存储在我正在创建的 dll 中(我知道这不被推荐),但我不知道如何编写一些代码来简单地签署一个 xml 文档,然后验证它没有被更改。
那么我需要使用对称 key 来做我想做的事吗?
皮特
您已经提到了将私钥存储在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(/*...*/);
我是一名优秀的程序员,十分优秀!