【问题标题】:AES Encryption done on both Iphone and Android在 Iphone 和 Android 上完成 AES 加密
【发布时间】:2011-12-01 09:10:58
【问题描述】:

我们正在 android 和 iphone 中创建相同的项目。现在的问题是我们需要使用加密形式的 web 服务将用户信息发送到 aspx 服务器。我们都实现了它,但结果不同,所以有没有一种通用的 AES 加密方法可以产生相同的结果并且可以在服务器上解析。

请尽快回复,我的工作因此受到影响。

提前致谢

【问题讨论】:

标签: android iphone


【解决方案1】:

您可以考虑使用适用于 iOS 的 RNCryptor library 和适用于 Android 的 JNCryptor library。两个开源库都使用相同的数据格式,并且支持基于密码的加密和使用 256 位 AES 的基于密钥的加密。

数据格式还包括跨数据计算的 IV 和 MAC 值,因此它符合数据加密的最佳做法。

【讨论】:

    【解决方案2】:

    如果提供相同的参数,AES 加密/解密将产生相同的结果。特别感兴趣的是

    1. 加密密钥值和大小
    2. 模式:CBC、ECB 等(您可能应该使用 CBC)
    3. 大多数模式都需要初始化向量 (iv)
    4. 填充方法:PKCS7等(AES是块密码,需要输入 块大小的倍数)

    首先选择简单的测试数据,然后让它发挥作用并进入更复杂的情况。例如:最初选择一个全为 0 的 iv,CBC,数据正好是一个块大小,没有填充。当它起作用时,开始增加更多的复杂性。

    安全并不容易,加密部分是容易的部分。

    或者使用 SSL。

    为了参考和学习,基本上所有需要知道的都在Handbook of Applied Cryptography 中,它是免费(且合法)的 pdf 下载,也可以购买精装版。专业人士使用这本书,甚至我的妻子在她的工作中。

    【讨论】:

    • 非常感谢您的回复。但是先生,我在这个领域很新,之前从未做过加密所以我不知道如何去做以及从哪里开始。这段代码在 android 中的外观以及我在 iphone 中的实现方式。我只是空白。你能告诉我一些例子或提供一些适用于android和iphone的代码sn-p。
    • Sir android 团队已经使用了以下链接中的方法,是否有一种方法可以在 iphone 中实现相同的方法或我们都可以遵循的其他方法。stackoverflow.com/questions/5277533/…
    • 先生任何我可以理解一切的网站。以及如何实施,CBC,ECB如何运作等。
    【解决方案3】:

    我在 java 和 iOS 上使用 AES 加密时遇到了一些类似的问题,请检查我的问题和答案,也许它可以帮助你,ECB 模式仅在 iO 上支持

    Objective-c AES encryption doesn't look like java AES encryption

    【讨论】:

    • iOS (CommonCrypto) 支持 CBC 和 ECB,默认为 CBC。不要简单地通过标头 (.h) 文件,在这种情况下 .h 文件不提供默认值。
    • 来自 Apple 头文件 CommonCryptor.h:初始化向量,可选。启用密码块链接 (CBC) 模式时由块密码使用。如果存在,其长度必须与所选算法的块大小相同。 如果选择了 CBC 模式(由于选项标志中缺少 kCCOptionECBMode 位)并且不存在 IV,则将使用 NULL(全零)IV。
    • Sir android 团队已经使用了以下链接中的方法,是否有一种方法可以在 iphone 或其他我们都可以遵循的方法中实现。 stackoverflow.com/questions/5277533/…我是这个领域的新手,以前从未做过加密,所以我不知道如何做以及从哪里开始。这段代码在 android 中的外观以及我在 iphone 中的实现方式。我只是空白。你能告诉我一些例子或为android和iphone提供一些代码sn-p。提前谢谢
    • 我查看了有代码,不幸的是我不知道 java 安全 API 并且无法从中获取任何真实信息。首先你需要知道有代码在做什么,得到我答案中四点的答案。
    • 先生任何我可以理解一切的网站。以及如何实施、CBC
    猜你喜欢
    • 2011-04-28
    • 2010-11-26
    • 2011-12-20
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    相关资源
    最近更新 更多