我正在开发一款具有原生Android和原生iOS实现的IM应用。其中一个必需功能是能够通过输入普通密码字符串来加密消息。然后,必须输入此密码才能解密这些消息。我还被告知要使用AES"。
我的计划,我试图接近成功,是采取密码字符串,盐与一些我知道永远不会改变的上下文信息,并使用类似MD5的东西生成固定长度的密钥。我知道这不是超级安全。
要解密,我在上面重复,我得到相同的密钥。然后,我用该密钥解密数据,并恢复原始数据。
我让它在Android和iOS上工作,但他们无法解密彼此的数据,这告诉我可能存在我无法看到的实施差异以及我无法改变。两个平台上AES128加密数据的前16个字节始终相同,但在此之后,它们完全不同。我可以检查什么?
要清楚,用户体验应与使用密码共享zip文件的用户体验相同。用户可以随时从任何设备输入密码,而BAM则会获得未加密的数据。共享密钥文件或其中任何内容都不属于此类。
答案 0 :(得分:1)