我为 Android 创建了一个密码管理器(参见它的网站),它有一个深受许多用户喜爱的功能:“QuickUnlock”。密码数据库通常使用强而长的密码进行加密,但一旦解锁数据库,应用程序就会尽可能长时间地保持活动状态(使用具有持续通知的服务)。因此,如果用户想要访问下一个密码,只需输入密码的一小部分就足够了。这是可能的,因为数据库(包括主密码仍在内存中)。(如果手机被盗,“攻击者”只有一次猜到短密码的机会。之后,数据库被完全锁定。)
这有两个主要缺点:
- 该应用程序需要大量内存,因为它基于 Mono for Android,它带有相对较大的库
- 有时,尽管有持续的通知,应用程序仍会被终止,并且用户需要再次输入长主密码。
现在我正在寻找一种使用户体验更好的方法。我不认为将主密码甚至部分密码存储在 SD 卡或内部永久存储器中是一种选择。它应该只保留在 RAM 中。
有什么方法可以将(几个字节的)数据保存在内存中,但仍然允许应用程序被杀死?我在想某种 Intent 可以在重新创建时传递给应用程序?怎么可能做到这一点?
感谢您的任何提示!