RSA:在.NET中使用公钥进行解密?

我遇到了MS .NET的RSA加密/解密功能问题:

看来,.NET does not support使用私钥进行加密并使用相应的公钥进行解密. (据我所知,这样做会以某种方式侵犯算法的安全性.)

好的,但是例如当我在建筑物上签署一个装配时,似乎是the compiler just does that:“编译器使用公钥 – 私钥对文件中的1024位私钥加密摘要.”

所以,如果我不能说服RSACryptoServiceProvider使用公钥进行解密,我怎样才能实现像编译器类似的东西呢?

我只想用我的私钥加密几个字节并用公钥解密它,用于一些非关键任务.如果编程爱好者设法打破这个计划,我会活下去.我只是想阻止非技术娴熟的John Doe窥探.

对此有任何建议将不胜感激.

电贺
berntie

编辑:建议使用SignData()和VerifySign(),但之后我只能比较哈希的相等性.但是,我需要检索加密/签名的原始输入.

最佳答案
.Net确实支持它,但是这个概念被称为“签名”并使用RSACryptoServiceProvider的SignData()方法.从技术上讲,正在发生的是创建要签名的数据的哈希值,然后使用私钥加密该哈希值.

我认为他们不支持使用私钥进行任意加密的原因是为了确保代码中的良好安全实践,这样您就不会意外地使用错误的密钥加密,或者您不使用不安全的技术来制作签名.

有关示例代码,请参阅SignData上的文档.

转载注明原文:RSA:在.NET中使用公钥进行解密? - 代码日志