【发布时间】:2021-01-06 09:17:43
【问题描述】:
我想使用RSA 加密和SHA256 填充,但我发现RSACryptoServiceProvider 不支持OaepSHA256 作为填充,一些用户建议使用RSACng,这是@ 的新实现987654327@ 算法支持更多的东西,比如SHA256 作为填充。
问题在于我在启动RSACng 时遇到了这个错误(我猜unity 还没有实现RSACng):NotImplementedException: The method or operation is not implemented.
启动码:rsa = new RSACng();
- 我的代码或知识有什么问题吗?
- 还有其他方法可以在 Unity3D 中使用
RSACng吗? - 还有其他方法可以使用 SHA256 作为 Unity3D 中 RSA 加密的填充吗?
附言。我想在 UDP 连接上使用RSA 加密进行服务器/客户端通信。据我所知SHA1 和PKCS1(由RSACryptoServiceProvider 支持)对于RSA 填充不够安全和快速。
【问题讨论】:
-
据我所知,SHA1 ... 对于 RSA 填充来说不够安全和快速。 SHA1 在 OAEP 填充方案中的散列函数中使用时足够安全。尽管如此,明智的做法是避免使用任何安全功能的 SHA1,以帮助将其从生态系统中移除。但如果无法避免,那么在 OAEP 中使用是安全的。
-
感谢您的回复。抱歉,我将这部分文档读错了(将“可能不是”读为“可能”!):“虽然 SHA-1 的抗碰撞性已经屈服于最近的一系列攻击,例如 [WYY05],但 RSA-因此,使用 SHA-1 实例化的 OAEP 可能不会受到相应的影响。”参考:eprint.iacr.org/2006/223.pdf
标签: c# unity3d encryption rsa sha256