我是 Windows Phone 开发新手。如何在 WP7 中使用 AES/ECB/PKCS7Padding 算法?
在谷歌搜索时,我看到了很多关于 Bouncy CaSTLe 的建议。但我对这个充气城堡并没有很清楚的了解。这是一种算法吗?
我需要加密/解密密码以发送到服务器。在所有其他手机(Android、iPhone、Blackberry)中,我们为此使用 AES/ECB/PKCS7Padding 算法。它们都为我们的输入提供相同的加密/解密结果。但在 Windows Phone 中,我使用 AesManaged Class 进行加密。但它给出了不同的加密结果。在关于 AESManaged 类的 msdn 文档( MSDN documentation )中,他们说“密码模式始终是 CBC,填充模式始终是 PKCS7”。我想也许这就是为什么我在这里得到与其他手机不同的加密结果。
这就是问题所在吗?如果是,那么我如何在 WP7 中使用 AES/ECB/PKCS7Padding 算法?
我在 AesManaged 类中没有看到任何用于设置密码模式的属性。
谢谢。
最佳答案
如果您想在 Windows Phone 中使用 AES/ECB/PKCS7Padding,您应该使用 Bouncy CaSTLe 库。
这个库并不是专门为 Windows Phone 制作的,您不能使用 Bouncy CaSTLe 网站上的 dll。相反,您应该从 here 下载 WP7 移植的库。 。 (文章底部两个链接)
现在,您可以使用 Org.BouncyCaSTLe.Crypto.IBufferedCipher 类型。
cipher = CipherUtilities.GetCipher("AES/ECB/PKCS7"); // or PKCS7PADDING, no matter
cipher.Init(false, new KeyParameter(key)); // or something else
那么您应该使用这个变量。
是的,
"The cipher mode is always CBC, and the padding mode is always PKCS7"
这就是你得到错误结果的原因。
关于windows-phone-7 - 如何在Windows Phone 7中使用AES/ECB/PKCS7Padding算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11733424/