我正在寻找一种使用 C# 实现的快速且安全的加密算法。我需要能够恢复初始消息。你有什么建议?
谢谢您的帮助!
如果需要非对称加密,请使用2048位RSA。
如果您可以使用对称加密,请使用 256 位 AES。
系统.安全.密码学
RSACryptoServiceProvider
AesCryptoServiceProvider
您可以在这里了解它们之间的区别:对称与不对称。
根据您的评论,对称加密应该可以满足您的需要 - 更不用说它比非对称加密更快。您可能想查看 RijndaelManaged 类 - 它与 AES 实现相同,但在块大小方面有更大的灵活性。
现在,谈论安全性,这取决于您的密钥的安全性。就您而言,您正在谈论将其存储在代码中。因此,您需要保护您的代码/程序集(比如它是否位于受控服务器环境中)。更好的选择是将密钥放入配置文件中(假设配置文件存储在受控环境中,它们提供了更改它的灵活性)。如果您希望放入代码和代码/程序集,但希望防止逆向工程攻击 - 混淆与隐写术相结合将是一个不错的选择。以下是关于 .NET 中的隐写术实现的几篇文章: