在我的研究中,我发现了关于这个主题的混合信息,因此我正在寻找专业知识来解释加密可变数量数据的最佳方法。
要求:
[编辑:添加附加要求 #3 以回应评论]
我想将 RSA 用于公钥/私钥加密方案,这样我就可以将公钥分发给应该加密数据但不知道如何解密数据的应用程序
我需要支持从 16 个字符(信用卡号)到千字节(序列化对象)及以上的数据长度。我加密的大部分数据都很小(信用卡、地址等)。
这是为了加密静态数据。
我知道的选项:
RSA-ONLY:用于使用
RSACryptoServiceProvider
公钥加密所有数据。遍历小于键大小减去填充的块中的数据。HYBRID:用于
AesCryptoServiceProvider
加密数据、调用.GenerateKey()
和.GenerateIV()
生成随机密钥和IV。然后使用 RSACryptoServiceProvider 加密上述密钥和 IV 并将其添加到数据中。
在我看来,混合方法让我两全其美。强分组密码 (AES) 和分布式公钥 (RSA)。
这些方法的优缺点是什么?标准是什么?令人惊讶的是,我没有找到关于该主题的太多意见或信息,并希望您提供任何参考资料。
奖励: 出于各种原因,包括公司许可限制,我正在推出自己的方法,但我很好奇 C# 是否有一个好的标准开源方法。