2

我试图了解如何在 xamarin 表单项目中存储秘密。

我有一个 web api 核心作为后端,一个 xamarin 表单应用程序作为前端。

我正在尝试使用 Xamarin.Auth 对 facebook 身份验证进行编码,我需要将密钥传递给我的应用程序..

我的想法:

  1. 存储在前端:我可以创建一个配置文件并对其进行加密,但解密将在我的源代码中,通过反编译和反射,黑客可以检索解密源代码并解密密钥。

2:存储在后端:我可以将密钥存储在后端,但通过嗅探发送的请求,黑客可以检索我的密钥。

那么解决方案是什么?我该怎么做?

谢谢,

4

1 回答 1

2

您可以使用Xamarin.Essentials存储您的秘密。对于 Android,您的密钥将存储在Androids KeyStore和 iOS 的Keychain中。即使您决定使用加密的配置文件,我强烈建议您将密钥和 IV 存储在 SecureStorage 中,而不是在源代码中硬编码。它非常易于使用,而且与在移动设备上一样安全。

try
{
   // write secret
   await SecureStorage.SetAsync("oauth_token", "secret-oauth-token-value"); 

   // read secret
   var token = await SecureStorage.GetAsync("oauth_token");
}
catch(Exception ex)
{
} 
于 2019-06-26T16:29:17.890 回答