移动 Web 服务的加密和解密



我正在开发一款移动应用程序,该应用程序将在Android(Native)、iOS(Native;PhoneGap。为了安全起见,我已经在使用SSL,但根据客户端要求,将在所有Web服务(移动端和服务器)中实现另一种加密。但我无法实现在Java、Objective-C和JavaScript中运行良好的加密。

我可以设法让AES-256在所有平台上工作,但它在安卓系统中工作得很慢。用于相同的库是RNCryptor。

你能给我推荐任何至少与Java&目标C。

AES-256是一个正确的选择,不应该是性能问题。大多数cpu芯片都包含特殊指令,以实现更快的实现,苹果ARM芯片和英特尔芯片一样。如果您要声称加密对于一个实现来说很慢,那么您需要为所有平台提供测试时间,生成并发布它们。

从加密中获得相同的结果,在这种情况下,AES-256,只是简单地为完全相同的输入提供完全所需的长度和完全相同的选项——仅此而已。

提供安全加密不仅仅是一个密钥、数据和AES-256库。需要有一个iv,如果密钥是周,它需要扩展,密码通常用PBKDF2扩展,或者类似的。这些要求将更多信息添加到传递的加密数据中。还有诸如PKCS#7之类的数据填充。RNCryptor处理所有这些,但为了实现互操作性,需要另一端使用相同的方案。然后是保护加密密钥并与另一方交换的问题。

最新更新