RSA 加密 C#

发布于 2024-08-25 14:30:39 字数 177 浏览 3 评论 0原文

我有一个在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月苍老的讽刺 2024-09-01 14:30:39

事实上,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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文