RSA 加密 C#
我有一个在 C# 中执行 RSA 加密的类,其中我使用默认的 RSACryptoServiceProvider 类。但我担心以下问题;如果输入有单词 hello,并且加密字符串以 ABCDE 返回,如果您对输入 hello 执行另一个加密操作,使用 RSA 的相同密钥(公钥和私钥),输出是否会再次是 ABCDE?
提前致谢
I have a class which in C# doing RSA encryption where I used the default RSACryptoServiceProvider class. But I have a concern regarding the following; If you have the word hello for an input and the encrypted string is returned as ABCDE, if you perform another encrypt operation on the input hello, using the same keys (public and private) for the RSA will the output be again ABCDE?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实上,RSA是一种确定性加密算法,因此给定相同的密钥和明文,将输出相同的密文。 RSA 通常与填充方案一起使用以确保语义安全。
这当然只是一般情况。我不能保证 C# 中的 RSACryptoServiceProvider
编辑:
当然,您选择的填充方案也需要相当伪随机。 OAEP 是常用的一种。
Indeed, RSA is a deterministic encryption algorithm, so given the same keys and plaintext, the same cryptotext will be outputted. RSA is commonly used with a padding scheme to be semantically secure.
This is of course only the general case. I can't vouch for the RSACryptoServiceProvider in C#
Edit:
Of course, your chosen padding scheme needs to be pretty pseudorandom as well. OAEP is one commonly used.