首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Android图像加密的对称加密与非对称加密

用于Android图像加密的对称加密与非对称加密
EN

Stack Overflow用户
提问于 2016-05-05 07:50:11
回答 1查看 888关注 0票数 4

我正在尝试创建一个Android应用程序,它可以实时加密数据并将其写入存储。已经实现了没有加密的应用程序,检查了堆栈溢出上的100+加密示例/帖子,但无法决定使用哪种方法。

一开始考虑使用AES,并做了一些搜索,以了解它有多安全。每次输入16或32个字符(更好的安全性,我希望)密码似乎不方便。作为另一种选择,不对称加密出现在脑海中。用一个密钥加密,用另一个密钥解密,这样我就可以将用于加密的密钥留在内存中,只有在需要解密数据时才使用另一个密钥(比如在PC上或另一个应用程序上离线)。

将被加密的文件将主要是图像、视频、音频记录、办公室文档。

第二种方法是否留下任何漏洞?在AES和RSA之间,如果我需要平衡速度和安全性,哪一种更好。数据不是什么绝密的东西,只是需要防止落入坏人之手。运行KitKat时,设备未加密。这两种方法对某种攻击的抵抗力如何?

编辑:描述两种方法。

方法1:使用基于密码的AES加密,在应用程序启动时手动输入16/32字符密码,从内存中清除某个/某些触发器后的密码。在需要时再次输入密码。

方法2:使用基于私钥/公钥的RSA加密。保留一个密钥,用于在设备上加密的密钥。在解密期间使用另一个密钥,这几乎不需要执行。

EN

回答 1

Stack Overflow用户

发布于 2016-05-05 10:14:17

这个问题有点难以回答,因为您还没有真正描述过任何方法,您刚刚命名了两种加密算法。如果正确地实现,那么这两种算法对您的需求来说都是非常安全的。

重要的是要记住RSA可以加密不超过密钥长度的数据(在填充时减去一些),所以在大多数情况下,仅RSA是不够的。

如果您只是对单个设备上的信息进行加密,并希望用户控制其加密和解密的时间(例如使用密码),则可以使用PBKDF2导出一个以密码字符串为输入的x长度密钥(例如AES256,32字节)。

如果您不打算利用RSA的不对称属性,就不要费心使用RSA。在大多数情况下(但不是全部),如果不涉及服务器或附加方,RSA是多余的。

你没怎么描述你的问题,但如果是我,我会用AES。

在使用AES时,请记住以下几点:

  • 从不使用欧洲央行模式。
  • 从不使用ASCII字节作为键。您应该使用PBKDF2或类似的方法来派生密钥,通常100,000发是好的。
  • 总是使用安全的RNG来创建IV (如果您的密码模式使用一个,有些(比如CTR )使用nonce代替,但概念几乎是一样的)。
  • 始终记住,AES 不能确保的完整性。在解密前使用MAC检测密文中的更改。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37045287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档