use*_*421 3 encryption realm react-native
领域是否对用于加密领域数据库的密钥生成/密钥存储有任何反应本机支持?在为其编写任何本机模块之前,我想与领域的团队进行核实。如果有任何节点模块支持本机反应,那将会很有帮助。
提前致谢。
小智 5
Realm 不提供任何用于生成或存储加密密钥的 API。我在下面复制了我过去对此问题所做的评论,只是为了提供我对在 React Native\xe2\x80\xa6 上处理加密领域时应考虑的一些注意事项的想法
\n\nReact -native-keychain模块仅支持密码字符串,而 Realm 期望 512 位(64 字节)数据 blob 作为ArrayBufferor ArrayBufferView(例如Uint8Array,等)。
如果您随机生成密码,那么我建议在存储之前将该数据进行 Base64 编码为字符串react-native-keychain,然后在取出时对其进行 Base64 解码。我建议检查base64-js来处理原始数据(atob/btoa仅处理字符串)。
另一方面,如果用户提供密码,那么您可以将其直接存储在钥匙串中,并使用该密码的 512 位哈希值作为加密密钥。SHA-512 散列可以实现这一点,但通常在加密时,您需要使用包含盐的散列算法,该算法从根本上来说很慢,从而使暴力破解变得更加困难。尽管存在更新更好的散列方法,但执行此操作的标准是PBKDF2 。我建议为此检查crypto-js或pbkdf2-js 。
\n