有谁认为使用sn.exe生成公钥/私钥对有什么不对呢?我以后可以用私钥加密数据,然后把公钥给人们以便他们可以解密我的密文?我知道sn.exe用于强命名程序集,但是由于它生成密钥对,我可以简单地使用这个方案吗?
我在问这个问题时,知道RSA是用来用公钥加密的。但我有一个我认为是有效的用例来做相反的事情。
发布于 2012-08-21 13:13:02
这其实是两个问题:
第一个问题的答案是:不,不完全是。SN.exe的键盘生成实际上只对非常小的开发环境有用,并要求您处理所有安全性。有更好的方法来生成包含密码保护(PFX)之类的证书容器。例如,请看一下MakeCert工具--它可以用于生成自签名的X.509证书,这些证书可以用于几乎所有您想要执行的加密操作。
不幸的是,第二个问题的答案也是:不,不是真的。从密码的角度来看,用私钥加密某些东西没有多大意义;毕竟,公钥就是这样的:公共密钥。如果有人可以解密它(没有OS提供任何公钥保护,所以得到一个副本很简单),那么加密它就没有多大意义了。如果目的是确保人们能够证明它来自你,数字签名是一个更好的方法,在这种情况下,你所描述的正是你想要做的事情:用私钥签名,用免费获得的公钥验证签名。
现在,如果您想要有一种将加密数据分发给多个收件人的方法,请考虑使用PKCS #7/CMS信封。既然你说的是使用sn.exe,那就告诉我你在使用.NET,所以你很幸运!EnvelopedCms类应该提供所需的内容。您所需要的只是您的收件人的X.509证书中的公钥(让您获救!)。MSDN有一个演练这里。
https://stackoverflow.com/questions/12053973
复制相似问题