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

前端之家收集整理的这篇文章主要介绍了Android – 将敏感数据存储在sqlite数据库中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在 Android应用程序的sqlite数据库中存储敏感数据.

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

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

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

解决方法

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

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

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

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

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

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

猜你在找的Android相关文章