跨平台加密/解密 - 处理密钥和初始化向量(IV)

时间:2011-03-28 23:28:49

标签: .net cross-platform encryption

在查看了一些示例之后,我将一些加密/解密方法结合在一起,这些方法利用Rfc2898DeriveBytes来获取密钥和初始化向量。我担心接收加密内容的一方必须能够解密它。由于我无法控制他们使用的语言(可能是Java,PHP,C等等),我如何确保他们能够导出密钥和初始化向量(IV),因为我使用{{1在.NET中的类?以下是我正在使用的加密和解密方法。

Rfc2898DeriveBytes

1 个答案:

答案 0 :(得分:4)

您会告诉收件人实施PBKDF2,这是RFC2898PKCS #5中定义的标准。 Microsoft's documentation表示他们的函数使用HMAC-SHA-1作为伪随机函数,并使用1000作为默认迭代次数。这是他们需要的信息。

但是,您还需要在发送方传输使用GenerateSalt()创建的salt。收件人不能自己调用​​GenerateSalt() - 应该为每条消息随机生成。