【发布时间】:2016-05-05 07:50:11
【问题描述】:
我正在尝试创建一个动态加密数据并将其写入存储的 Android 应用程序。已经实现了没有加密的应用程序,在 stackoverflow 上检查了 100 多个加密示例/帖子,但无法决定使用哪种方法。
起初想到使用 AES,并进行了一些谷歌搜索以了解它的安全性。每次输入 16 或 32 个字符(我希望安全性更好)的密码似乎并不方便。作为替代方案,我想到了非对称加密。用一个密钥加密并用另一个解密,这样我就可以将用于加密的密钥留在内存中,仅在需要解密数据时使用另一个密钥(例如在 PC 上离线,或在另一个应用程序上)。
将被加密的文件将主要是图像、视频、录音、办公文件。
第二种方法会留下任何漏洞吗?如果我需要平衡速度和安全性,那么在 AES 和 RSA 之间,哪一个更好。数据不是绝密的东西,只是需要防止落入坏人之手。该设备未加密,运行 KitKat。这两种方法对某种攻击的抵抗力如何?
编辑:描述两种方法。
方法1:使用基于密码的AES加密,在应用程序启动时手动输入16/32个字符的密码,在某个时间/某些触发后从内存中清除密码。需要时再次输入密码。
方法 2:使用基于私钥/公钥的 RSA 加密。留下一把钥匙,用于在设备上加密的一把钥匙。在解密期间使用另一个密钥,这几乎不会执行。
【问题讨论】:
标签: android encryption