我正在开发一个 Android 应用程序,它允许用户存储笔记(如 evernote、keep 等),但能够“保护”(比如说加密)其中一些笔记不被未经授权的人查看用户。
首先我要说我对加密一无所知,所以任何更正、建议、增强等。它真的很受欢迎。
这是我想要的场景:
用户打开应用程序,使用自己的密码登录,然后他可以查看这些笔记。
对于我所读过的有关密码检查的所有内容,最好的选择是使用强大的单向加密来散列+盐。但是阅读更多内容后,我发现 BCrypt 算法似乎是更好的选择。还发现了 jBCrypt API for java,看起来很容易使用(顺便检查一下android集成......)
您推荐其中哪些?
如果我使用哈希+盐,我应该在哪里存储(随机)盐?因为下次用户登录时需要将其附加到用户输入密码(然后对其进行哈希处理)以检查存储在我的数据库中的哈希值。
这是其中一个问题,另一个问题来自数据加密本身。
我的想法是使用用户密码进行加密,但是密码会很短,所以需要另一种盐来防止暴力攻击......
对此有任何想法吗?您知道基于密钥(用户密码 + ¿salt)加密某些数据(字符串)的强大算法吗?必须是2路算法,才能恢复数据解密。
最后一个问题:将密码存储在内存中是否安全(当用户登录以解密数据时)?我读过很多东西,如 Keystores 等,但不知道这里最安全的选择。
提前致谢