C# Net中的私钥加密

C# Net中的私钥加密,c#,.net,encryption,encryption-asymmetric,C#,.net,Encryption,Encryption Asymmetric,我正在寻找一种在C#中进行私有密钥加密的方法 我想我可以使用RSACryptServiceProvider,但它只支持公钥加密 我在这个主题上找到的唯一东西是这个项目,但我更愿意使用我在.net中找到的东西: 请注意,我不是在寻找签名 请注意,我需要非对称加密 有什么想法吗 背景故事: 我正在向运行应用程序的另一个系统发送加密文件。加密是确保文件不能被任何人更改(或多或少)或查看。应用程序能够使用公钥解密文件,并对其进行处理 我知道几乎任何人都可以从应用程序中获取公钥,在这种情况下这不是问题 加

我正在寻找一种在C#中进行私有密钥加密的方法

我想我可以使用RSACryptServiceProvider,但它只支持公钥加密

我在这个主题上找到的唯一东西是这个项目,但我更愿意使用我在.net中找到的东西:

请注意,我不是在寻找签名

请注意,我需要非对称加密

有什么想法吗

背景故事:

我正在向运行应用程序的另一个系统发送加密文件。加密是确保文件不能被任何人更改(或多或少)或查看。应用程序能够使用公钥解密文件,并对其进行处理

我知道几乎任何人都可以从应用程序中获取公钥,在这种情况下这不是问题

加密是为了确保文件不会被任何人更改或查看

公钥加密-按“本书”完成时-将加密和签名分开(“无法更改”)。在您的情况下,使用两个密钥对,一个在应用程序中,另一个在您的站点中。使用公共应用程序密钥加密文件,并使用私有密钥对文件进行签名

这是一个非常广泛的用法,我甚至喜欢称之为“最佳实践”。至于否决票,我只能猜测,排除在你的问题上签字的可能性触发了这一点

加密是为了确保文件不会被任何人更改或查看

公钥加密-按“本书”完成时-将加密和签名分开(“无法更改”)。在您的情况下,使用两个密钥对,一个在应用程序中,另一个在您的站点中。使用公共应用程序密钥加密文件,并使用私有密钥对文件进行签名



这是一个非常广泛的用法,我甚至喜欢称之为“最佳实践”。至于否决票,我只能猜测,排除在你的问题上签字的可能性触发了这一点。

不应该这样做。请改为签名并使用对称加密。

不应这样做。请改为签名并使用对称加密。

如果您不进行签名,但希望使用私钥加密,那么您到底想实现什么?私钥加密是什么意思?基于您的强调,我建议使用RSA并将这两个密钥保持为私有,“公钥”和“私钥”只是该设置中的名称。如果它可以被公钥反转,那么给定公钥只有一个操作-加密-逆操作不就是解密操作吗?i、 e.您尝试“解密”纯文本以生成加密的私钥data@Ben,加密数据被发送到知道公钥的地方,因此应该能够解密数据,但不能加密@Stephan,这意味着公钥不能保持私有。即使你一直坚持不这样做,你描述的是签名。如果你不做签名,但你想用私钥加密,那么你到底想实现什么?私钥加密是什么意思?基于您的强调,我建议使用RSA并将这两个密钥保持为私有,“公钥”和“私钥”只是该设置中的名称。如果它可以被公钥反转,那么给定公钥只有一个操作-加密-逆操作不就是解密操作吗?i、 e.您尝试“解密”纯文本以生成加密的私钥data@Ben,加密数据被发送到知道公钥的地方,因此应该能够解密数据,但不能加密@Stephan,这意味着公钥不能保持私密性。即使你一直坚持不这样做,你描述的是签名。呃,是的。“不改变”这个词不合适,但你明白了。我可以理解,在这种情况下,签约是最好的实践,但如果我想走这条路,我不会问这个问题。@SaphuA所以你想忽略一个众所周知的、被理解的最佳实践。很抱歉,我不明白,也许你可以告诉我们为什么不能签字?这听起来有点像“滚你自己的密码”,这永远是个坏主意:(因为阅读文件应该是困难的,不是不可能的。呃,是的。不更改不是正确的词,但你明白了。我可以理解在这种情况下,签名是最好的做法,但如果我想走这条路,我不会问这个问题。@SaphuA所以你想忽略一个众所周知和理解的最佳做法。对不起,我不知道如果你不明白,也许你可以告诉我们为什么签名是不可能的?听起来有点像“滚你自己的密码”,这总是一个坏主意:(因为读取文件应该是困难的,而不是不可能的。