【发布时间】:2021-03-13 18:04:24
【问题描述】:
是否有任何包、框架或服务可以在 Flutter 中使用 firebase 作为服务器对用户数据进行客户端加密?
我希望构建一个应用来处理用户的一些个人财务信息,因此我不希望其他人(包括我自己)能够访问它。 Firebase 允许开发人员查看未加密的数据库,因此我需要在客户端进行加密。
我认为这可能必须涉及用于加密和解密用户数据的客户端对称密钥。
我担心的是如何存储这个密钥。
(1) 随机生成的密钥存储在本地 - 不允许用户在设备之间切换,如果设备丢失则丢失 (2) 将其存储在 Google Drive 中 - 要求用户拥有 Google 帐户。 (Advocated by this article 来自 HackerMoon (3) 从用户密码的加盐哈希(存储在本地)确定性地生成它 - 如果用户忘记或更改密码,则会丢失。 (4) 允许用户在上述子集之间进行选择
我的问题与How to encrypt user data in Firebase 类似,但它涵盖了数据在用户之间传输并因此使用公钥加密的情况。
问题: 为 firebase 数据库加密用户数据的最佳方法是什么?
如果要使用对称密钥,生成和存储此密钥的最佳方式是什么,这样用户就不会冒失去对其数据的访问权限的风险?
【问题讨论】:
-
pub.dev/packages/crypt,求加密密码,数据永不丢失
标签: flutter dart encryption cryptography