2

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

虽然Google搜索了一下,但看到很多关于Bouncy Castle的建议。但我并没有清楚地了解这座充气城堡。这是一个算法吗?

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

这是问题吗?如果它的话,那我该如何在WP7中使用AES/ECB/PKCS7Padding算法?

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

谢谢。

+0

嗨...你能解决你的问题吗?我正在运行一个类似的问题。任何帮助将被appriciated – 2015-07-20 13:08:23

回答

3

如果你想在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 

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

是的,

“的加密模式始终是CBC,并填充模式始终是PKCS7”

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