我需要使用其他公司公开的网络服务。
他们告诉我在OFB模式下使用Rijndael加密我发送它们的数据,但显然,.Net(3.5)不支持OFB for Rijndael。它告诉我:System.Security.Cryptography.CryptographicException: the (crypting?) mode is not valid for this algorithm
(近似即时翻译)。
他们给了我一个32个字母数字字符的IV。我无法使用它(使用System.Text.Encoding.ASCII.GetBytes(k)
),它告诉我:System.Security.Cryptography.CryptographicException: the specified initialization vector (IV) does not match the block size for this algorithm
(近似即时翻译)。密钥长度与IV相同,并且有效。
我该怎么做才能让它发挥作用?
由于
答案 0 :(得分:3)
您可以使用CBC模式生成OFB输出,方法是将CBC方法全0作为纯文本输入。然后使用您的真正明文手动xor收到的密钥流。实际上,维基百科上的图表很好地展示了它是如何工作的,看看here。