每个平台的编码和解码

时间:2014-09-19 11:18:07

标签: encoding base64 aes decoding

在java中对字符串进行编码,然后在所有移动平台上进行解码。 如果我使用Base64 / AES,但他们在他们的平台上都有不同的实现 如何编码字符串然后它将在每个移动平台(Android,IOS,Windows,Mozilla,BlackBerry,J2ME电话)上解码

1 个答案:

答案 0 :(得分:1)

正如评论中所述,base64和AES已经充分标准化,每个平台都将具有兼容的实现。

你必须确保一些事情:

  • 将字符串转换为字节时始终使用相同的字符编码(反之亦然)。

  • 在所有平台上使用相同的AES操作模式(例如CBC模式)和相同的填充(例如PKCS#7 [Java中的PKCS#5])。如果您可以选择明确说明您的选择,请不要依赖默认值。

  • 如果您使用需要IV的模式,请确保将其正确传递到目标。为了获得最佳实践,请为每条消息使用随机IV。

  • 使用相同的密钥。这可能听起来很愚蠢,但如果您从密码中获取密钥,则需要在每个平台上使用相同的机制。 PBKDF2是基于密码的密钥的理想选择(您需要使用相同的散列函数和迭代计数)。如果使用固定密钥,请确保以一致的方式从字符串表示转换为密钥字节。