以Xamarin形式存储密钥

时间:2019-06-26 14:22:50

标签: authentication xamarin.forms secret-key xamarin.auth app-secret

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

我有一个Web api核心作为后端,而一个xamarin Forms应用程序作为前端。

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

我的想法:

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

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

那该怎么解决?我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用Xamarin.Essentials存储您的秘密。对于Android,对于iOS,您的机密将存储在Androids KeyStoreKeychain中。即使您决定使用加密的配置文件,我也强烈建议您将密钥和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)
{
}