首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android移动应用程序数据加密

Android移动应用程序数据加密
EN

Security用户
提问于 2012-12-07 08:41:36
回答 1查看 15.9K关注 0票数 9

我正在为Android开发一个移动应用程序。顺便说一下,这是我的第一个移动应用程序。

我已经决定将应用程序中使用的数据存储在目标安卓设备的SQLite数据库中。

我存储的数据是关于用户的财务数据,所以我决定在存储到数据库之前对数据进行加密。但我不想耗尽所有的手机资源来做加密和解密。

BouncyCastle会做到这一点的。但我担心如果有人去编译代码,获取安全密钥并解密数据。有什么别的办法吗。欢迎你的任何想法。

EN

回答 1

Security用户

回答已采纳

发布于 2012-12-07 09:15:50

不要将硬编码的密钥嵌入到应用程序中;这只会给任何反向工程应用程序的人提供微不足道的混淆。

若要生成用于加密的密钥,请使用密钥派生算法(如PBKDF2 ),该算法实质上对密码执行数百轮哈希函数,将结果组合在一起生成一个安全密钥。要帮助理解为什么需要密钥派生算法,请看一看另一个答案

PBKDF2的好处是:

  • 可配置的子弹数量,以适应您的设备的计算速度,同时保持一个合理的安全裕度对抗蛮力。
  • 可证明的安全性,即它至少与底层哈希函数一样强。
  • 可以产生任意大小的密钥。
  • 易于实现(已经为您提供了Java实现 )

本质上,您让用户输入他/她的密码,然后使用PBKDF2计算密钥,然后使用该密钥解密/加密数据。

现在,就实际加密而言,我强烈建议,如果您以前没有处理过密码,那么应该坚持一些简单的方法。块密码必须在操作模式中使用,并且需要初始化向量(IV)才能安全。为了使其真正安全,有许多实现细节必须完全正确,因此在本例中,我建议阅读其他各种问题,以进一步了解它们。

票数 11
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/25104

复制
相关文章

相似问题

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