微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android – 将敏感数据存储在sqlite数据库中

我需要在 Android应用程序的sqlite数据库中存储敏感数据.

我如何确保这些数据是非常安全的?
我知道我可以使用密钥加密数据,但是我在哪里存储该密钥?我不想要求用户填写一个密钥,我只是想让它自己工作.
因为我怕逆向工程,我也不想在代码中加一个加密密钥.

我发现大约有SQLCipher.它说这是一种非常安全的方式来加密数据库中的数据,但为什么会这样呢?我还需要保留一个钥匙来解锁这些信息吗?或者这真的是确保数据安全的完美方式吗?

如果不是,在sqlite数据库中存储敏感数据的(几乎)失败的方法是什么?

解决方法

对称加密需要一个密钥加密和相同的密钥进行解密.没有办法.

不要将密钥存储在代码中,因为它可以被反编译(就像你所说的).

请求用户首次使用密码,并使用PBKDF2导出加密中使用的密码安全密钥.

用户必须输入密码,或者您需要将其存储在内存中.我要做的是,请用户指定密钥缓存在内存中用于解密的持续时间.

如果持续时间过期,用户将不得不再次输入密码.

我没有彻底检查sqlCipher,但它说它使用AES-256. AES是一种对称加密算法,它需要一个密钥加密和相同的密钥来解密.

原文地址:https://www.jb51.cc/android/312014.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐