我将 redux-persist 与 redux-persist-transform-encrypt 结合使用来加密我在 localstorage 中的 redux 存储。所以我像这样实现了加密:
const encryptor = createEncryptor({
secretKey: 'my-super-secret-key',
onError: function(error) {
// Handle the error.
console.log(error);
}
});
const persistConfig: PersistConfig = {
key: 'citizentracker',
storage: storage,
blacklist: new Array('form'),
transforms: [encryptor]
};
一切正常,redux 存储在本地存储中加密。我注意到的问题是,当我通过 webpack 4 进行生产包时。在 bundle.js 文件中,您可以通过搜索“secretKey”来查看键值。当我这样做时,我能够看到:
{secretKey:"my-super-secret-key",onError:function(e){console.log(e)}}
有没有人知道一种生成用于加密的密钥的方法,但也可以隐藏该密钥以防止人们查看源代码中的 bundle.js?或其他使这种加密更安全的方法。