在 React Native 和 Expo 中加密敏感数据

Encrypting sensivite data in React Native and Expo

我正在使用 React Native 和 Expo 开发移动应用程序,提供安全解决方案。项目所有者希望在应用程序中存储敏感的授权密钥,用于联系 REST 服务器和访问受保护的数据。他要求这个密钥至少要加密,并且尽可能从外面难以读取。

我知道topis:

Is React Native's Async Storage secure?

以及大约 KeyChain,但它们不涵盖加密和博览会问题。

那么在 React Native Expo 应用程序中尽可能保存此数据的最佳和常见解决方案是什么?

我最近参与了一个与您一样存在安全问题的 React Native 项目。安全不是一个简单的问题,我也不是专家,但这就是我们所做的。

我们使用 react-native-aes-encryption for encryption and hashing, react-native-rsa 生成 public/private 个密钥对。为了正确使用这些库,您最好需要了解基本的密码学概念。

我们使用了来自钥匙串的 react-native-keychain 到 read/write 数据。如果您想存储一些小的敏感数据,钥匙串是您的不二之选。它已在所有 Apple OS 中使用,以确保您的密码安全。也就是说,如果您想为两个平台构建您的应用程序,此组件在 Android 方面无法像预期的那样无缝工作。

除此之外我对世博会一无所知。我希望这些库也能为您所用。

Expo 现在有 SecureStore,存储加密数据。

详情:https://docs.expo.io/versions/latest/sdk/securestore