windows-phone-7 - 如何在Windows Phone 7中使用AES/ECB/PKCS7Padding算法?

标签 windows-phone-7 encryption aes windows-phone aescryptoserviceprovider

我是 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/

相关文章:

c# - Windows.Navigation.NavigationMode Windows Phone 7

java - 客户端服务器消息加密

Java AES GCM javax.crypto.AEADBadTagException : Tag mismatch

python - 解密文件时,获取数据必须以 CBC 模式填充到 16 字节边界

javascript - Aes 加密 .Net 和 Js

silverlight - 如何注册以接收 Mvvm-Light 中的所有属性更改

android - 哪种媒体格式更适合所有移动开发?

calendar - 将事件添加到日历

java - 服务器无法解密Android 4.2发送的消息

perl - Perl 中的 RSA key