Exi*_*tos 1 c# licensing cryptography signedxml
我想创建2个非常简单的dll:
1)将签署一个xml文档2),它将检查xml文档是否未被修改.
我尝试使用RSACryptoServiceProvider和一个密钥容器.但是当我移动到另一台机器时,这不起作用,因为钥匙存储在机器中.
我想将密钥存储在我创建的dll中(我知道这不是推荐的)但是我无法弄清楚如何编写一些代码来简单地签署一个xml文档,然后验证它没有被更改.
所以我需要使用对称密钥来做我想要的这可能吗?
皮特
您已经提到了将私钥存储在dll中的问题,因此我不再重复.
做这个:
在您自己的机器上运行以下代码:
var key = new RSACryptoServiceProvider(2048);
string publicKey = key.ToXmlString(false);
string privateKey = key.ToXmlString(true);
Console.WriteLine(publicKey);
Console.WriteLine(privateKey);
Run Code Online (Sandbox Code Playgroud)
这输出两条(长)线.将它们复制到您的代码中:
标志:
var privateKey = new RSACryptoServiceProvider();
privateKey.FromXmlString(/* insert the private-key XML string here */ );
privateKey.SignData(/*...*/);
Run Code Online (Sandbox Code Playgroud)
校验:
var publicKey = new RSACryptoServiceProvider();
publicKey.FromXmlString(/* insert the public-key XML string here */ );
publicKey.VerifyData(/*...*/);
Run Code Online (Sandbox Code Playgroud)