【发布时间】:2014-04-10 18:23:03
【问题描述】:
我正在开发一个具有原生 Android 和原生 iOS 实现的 IM 应用程序。所需功能之一是能够通过输入普通密码字符串来加密消息。然后必须通过输入此密码来解密这些消息。我还被告知要“使用 AES”。
我已经尝试过几乎成功的计划是获取密码字符串,用一些我知道永远不会改变的上下文信息对其进行加盐,然后使用 MD5 之类的东西生成一个固定长度的密钥。我知道这不是超级安全。
要解密,我在上面重复,我得到相同的密钥。然后,我使用该密钥解密数据,并取回原始数据。
我让它在 Android 和 iOS 上运行,但它们无法解密彼此的数据,这告诉我可能存在我看不到且无法更改的实现差异。两个平台上的 AES128 加密数据的前 16 个字节总是相同的,但之后就完全不同了。我可以检查什么?
明确地说,用户体验与使用密码共享 zip 文件的体验相同。用户可以随时从任何设备输入密码,然后 BAM,他们将获得未加密的数据。共享密钥文件或任何此类内容不是其中的一部分。
【问题讨论】:
标签: android ios encryption aes