2

我是 Windows Phone 开发的新手。如何在 WP7 中使用 AES/ECB/PKCS7Padding 算法?

谷歌搜索时,我看到很多关于充气城堡的建议。但我并没有清楚地了解这个充气城堡。这是算法吗?

我需要加密/解密密码以发送到服务器。在所有其他手机(Android、iPhone、Blackberry)中,我们为此使用 AES/ECB/PKCS7Padding 算法。它们都为我们的输入提供相同的加密/解密结果。但在 Windows Phone 中,我使用 AesManaged Class 进行加密。但它给出了不同的加密结果。在关于 AESManaged 类的 msdn 文档(MSDN 文档)中,他们说“密码模式始终为 CBC,填充模式始终为 PKCS7”。我想也许这就是为什么与其他手机相比,我在这里得到不同的加密结果。

这是这里的问题吗?如果是,那么如何在 WP7 中使用 AES/ECB/PKCS7Padding 算法?

我没有看到任何用于在 AesManaged 类中设置密码模式的属性。

谢谢。

4

1 回答 1

3

如果你想在 Windows Phone 中使用 AES/ECB/PKCS7Padding,你应该使用 Bouncy Castle 库。

这个库不是完全为 Windows Phone 制作的,你不能使用来自 Bouncy Castle 网站的 dll。相反,您应该从此处下载 WP7 移植库。(文章底部有两个链接)

现在,您可以使用 Org.BouncyCastle.Crypto.IBufferedCipher 类型。

cipher = CipherUtilities.GetCipher("AES/ECB/PKCS7"); // or PKCS7PADDING, no matter
cipher.Init(false, new KeyParameter(key)); // or something else

然后你应该使用这个变量。

是的,

“密码模式始终为 CBC,填充模式始终为 PKCS7”

这就是为什么你得到错误的结果。

于 2012-07-31T11:16:11.993 回答