【发布时间】:2017-06-20 10:24:27
【问题描述】:
我正在使用 React Native 和 Expo 开发移动应用程序,提供安全解决方案。项目所有者希望在应用程序中存储敏感的授权密钥,用于与 REST 服务器联系并访问受保护的数据。他要求至少对这些密钥进行加密,并且尽可能地难以从外部读取。
我知道topis:
Save sensitive data in React Native
Is React Native's Async Storage secure?
关于KeyChain,但它们不包括加密和展览问题。
那么,在 React Native Expo 应用程序中尽可能保存这些数据的最佳和通用解决方案是什么?
【问题讨论】:
-
您完全错误地解决了这个问题。如果您需要在客户端使用密钥,那么在客户端加密密钥是没有意义的,因为要使用它们,您需要解密密钥......因此,如果您在客户端上有解密密钥和密文,那么您还不如拥有明文。
-
您可以在服务器上拥有解密密钥,客户端可以将加密的数据发送到服务器,服务器可以轻松解密。由于您提到的明显原因,在此过程中您不需要将解密密钥存储在客户端。
-
如果要存储敏感数据可以看:stackoverflow.com/a/45550361/7618742
-
@LukePark :再一次:'很难从外面尽可能多地阅读' - 并非不可能
-
你误解了我的意思。你以错误的方式解决问题。引入一个中间服务,您可以使用它来验证用户,然后只需在该服务器上拥有 API 密钥。你不应该在客户端存储 API 密钥,加密或其他方式。
标签: encryption react-native cryptography expo