Encryption 在React Native和Expo中加密sensivite数据

Encryption 在React Native和Expo中加密sensivite数据,encryption,react-native,cryptography,expo,Encryption,React Native,Cryptography,Expo,我正在使用React Native开发移动应用程序,提供安全解决方案。项目所有者希望存储应用程序内敏感的授权密钥,用于与REST服务器联系并访问安全数据。他要求至少对这些密钥进行加密,并且尽可能从外部难以读取 我知道topis: 关于钥匙链,但它们不包括百科全书和博览会问题 因此,使用是使这些数据尽可能保存在React Native应用程序中的最佳通用解决方案吗?我最近参与了一个React Native项目,涉及您这样的安全问题。安全不是一个容易的问题,我也不是专家,但这就是我们所做的 我们

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

我知道topis:

关于
钥匙链
,但它们不包括百科全书和博览会问题


因此,使用是使这些数据尽可能保存在React Native应用程序中的最佳通用解决方案吗?

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

我们用于加密和散列,用于生成公钥/私钥对。为了正确使用这些库,您最好了解基本的密码学概念

我们过去常常从钥匙链读/写数据。如果你想存储一些小的敏感数据,钥匙链是一种方法。它已被用于所有苹果操作系统,以确保您的密码安全。也就是说,如果你想为这两种平台构建应用程序,这个组件在Android端的工作并不像预期的那样无缝


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

世博会现在有
SecureStore
,它存储加密数据


详细信息:

我投了反对票,完全是因为这个解决方案不安全。在客户端保存API密钥只是在任何情况下都不应该做的事情,无论加密程度如何。正确的解决方案是简单地拥有一个经过身份验证的web服务,它代表客户端处理请求。我同意你的看法。在我们的应用程序中,我们没有存储任何API密钥,或者在任何应用程序中,都不应该存储任何身份验证令牌。我只是简单地说明了你可以使用哪些组件来为你的应用程序添加加密/安全性。所以我可以理解,上面说他将客户端API密钥保存在哪里?对rsa pub/priv密钥的引用是对密钥的唯一引用,这与API密钥不同。解决问题的方法完全错误。如果需要在客户端使用密钥,则在客户端加密密钥是没有意义的,因为要使用密钥,需要解密密钥。。。因此,如果您在客户端上有解密密钥和密文,那么您也可以使用明文。您可以在服务器上有解密密钥,客户端可以将加密数据发送到服务器,服务器可以轻松地对其进行解密。在这个过程中,由于您提到的明显原因,您不需要将解密密钥存储在客户端。如果您想要存储敏感数据,您可以查看:@LukePark:再一次:“尽可能从外部读取很难”-这不是不可能的,您误解了我的意思。你用错误的方法解决了问题。引入一个中介服务,您可以使用该服务对用户进行身份验证,然后只需在该服务器上拥有API密钥即可。您不应在客户端存储API密钥(加密或其他)。SecureStore的限制为2 KB。到目前为止,这还不足以存储我们的敏感数据,它甚至可能超过100MB,那么在这种情况下,解决方案是什么呢?