Redux-Persist安全加密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redux-Persist安全加密相关的知识,希望对你有一定的参考价值。

我正在尝试学习如何在我的react-native应用程序中安全地保存我的redux状态。

我按照文档使用redux-persist-transform-encrypt:https://github.com/maxdeviant/redux-persist-transform-encrypt

import { persistReducer } from 'redux-persist'
import createEncryptor from 'redux-persist-transform-encrypt'

const encryptor = createEncryptor({
  secretKey: 'my-super-secret-key'
})

const reducer = persistReducer(
  {
    transforms: [encryptor]
  },
  baseReducer
)

但我不知道如何安全地设置secretKey字符串'my-super-secret-key'

编译js时,字符串的值不会在bundle中可见吗?

答案

是的,密钥将在JS bundle中可见。要解决此问题,您需要在nested persisted states中设置redux-persist并以某种方式将密钥存储到secured-dbkeystore或使用此包提及here

const mainPersistConfig = {
  key: "main",
  storage: AsyncStorage,
  blacklist: ["yourKeyReducer"]
};

const tokenPersistConfig = {
  key: "token",
  storage: sensitiveStorage
};

由于它提供了creation of the sensitive storage,因此克服了安全问题。

以上是关于Redux-Persist安全加密的主要内容,如果未能解决你的问题,请参考以下文章

WPYOU主题加密码代码的解码

(转)博客园登陆__JSEncrypt 分析

如何防止 redux-persist 在用户允许之前使用 LocalStorage?

为啥 Redux-Persist 不持久化存储

React native + redux-persist:如何忽略键(黑名单)?

store.getState 不是一个函数 Redux-persist