我正在尝试创建一个在移动设备上实时加密并写入存储的Android应用程序。已经实现了不进行加密的应用,查看了100多个在stackoverflow上的加密示例/帖子,但是无法确定使用哪种方法。
一开始考虑使用AES,并进行了一些谷歌搜索以找出其安全性。每次输入16或32个字符(更好的安全性)的密码似乎不太方便。作为替代,考虑使用非对称加密。使用一个密钥进行加密,使用另一个密钥进行解密,这样我可以将用于加密的密钥留在内存中,并仅在需要解密数据时(如在PC上离线或另一个应用程序中)使用另一个密钥。
将加密的文件大多数是图片、视频、音频录音和办公文档。
第二种方法是否存在漏洞?在AES和RSA之间,如果需要平衡速度和安全性,哪个更好?数据并不是绝对机密,只需要防止落入错误的手中。设备没有加密,运行KitKat。这两种方法对某种攻击有哪些效果?
编辑:描述了两种方法。
方法1:使用基于密码的AES加密,在应用程序启动时手动输入16/32个字符的密码,在一段时间后/从内存中清除密码。需要时再次输入密码。
方法2:使用基于私钥/公钥的RSA加密。将一个用于加密的密钥留在设备上。在解密时使用另一个密钥,这是很少执行的操作。
一开始考虑使用AES,并进行了一些谷歌搜索以找出其安全性。每次输入16或32个字符(更好的安全性)的密码似乎不太方便。作为替代,考虑使用非对称加密。使用一个密钥进行加密,使用另一个密钥进行解密,这样我可以将用于加密的密钥留在内存中,并仅在需要解密数据时(如在PC上离线或另一个应用程序中)使用另一个密钥。
将加密的文件大多数是图片、视频、音频录音和办公文档。
第二种方法是否存在漏洞?在AES和RSA之间,如果需要平衡速度和安全性,哪个更好?数据并不是绝对机密,只需要防止落入错误的手中。设备没有加密,运行KitKat。这两种方法对某种攻击有哪些效果?
编辑:描述了两种方法。
方法1:使用基于密码的AES加密,在应用程序启动时手动输入16/32个字符的密码,在一段时间后/从内存中清除密码。需要时再次输入密码。
方法2:使用基于私钥/公钥的RSA加密。将一个用于加密的密钥留在设备上。在解密时使用另一个密钥,这是很少执行的操作。