我在尝试加密由用户指定的字符串列表。用于加密和解密此数据的AES密钥必须保存在设备上,以便在用户需要解密数据时可以使用它。我已经了解到使用Keystore是存储密钥的好选择,但我阅读的大部分指南都将其与应用程序签名相关联,这并不是我想要的。我的应用程序需要用户输入密码,然后使用使用密码解锁的密钥解密字符串数据。我该怎么做?
谢谢。
谢谢。
MODE_PRIVATE 中,以保护其免受其他应用的攻击。即使密钥被恶意用户/设备盗窃恢复,也没有正确的密码密钥,密钥材料本身也是无用的。
如果您想防止密钥丢失,则不应将密钥存储在设备上,而应将其存储在自己的服务器上,再次使用密码密钥加密,以便数据库破坏不会导致数据泄露。
总之,我建议您尽量不要将任何私钥存储在设备本身上,而是将派生自密码的密钥用作所有加密操作的主密钥。将密钥库留给公钥密码学中生成的专为私钥和已知公钥证书。