android - 在 Android 设备上保存用户特定数据/访问 token 的安全方法

标签 android xamarin internal-storage android-internal-storage

我正在寻找一种更安全的方法来在设备上保留登录用户的特定信息,我想确保无法检索到这些信息。 我找到了一种解决方案,即 `string filename = "userId.txt";

        var personalData = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
        if (!Directory.Exists(personalData))
        {
            Console.WriteLine("Directory does not exist.");
        }
        else
        {
            Console.WriteLine("Directory exists.");
            File.AppendAllText(personalData + @"/" + filename, String.Format("{0}={1}", key, value));
        }`

这是做我想做的事情的正确方法吗?或者我应该考虑 SQL Lite? 谁能指导一下,我只是 android/Xamarin 的初学者。

最佳答案

如果你想要真正快速和跨平台的东西,我会推荐这个插件:https://github.com/sameerkapps/SecureStorage . 它在 Android 上使用 KeyStore,在 iOS 上使用 Key-chain 来保存数据。

我在 Android 和 iOS 中使用它没有任何问题。实现时间不到 5 分钟,我用它来存储我的 oAuth2 流程的访问 token 。 缺点是您需要对安全密码进行硬编码,而有人可以通过逆向工程来访问您的数据。一个解决方法(如果您确实需要该级别的安全性)是在每个 session 中从您的服务器检索一次安全 key ,但是当设备网络不可用时,这可能会成为一个问题。

关于android - 在 Android 设备上保存用户特定数据/访问 token 的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45524737/

相关文章:

android - 摩托罗拉 MC40 无法识别 DataMatrix 代码中的西里尔符号

Android:将设备USB插入/拔出USB端口时的BroadcastReceiver

xamarin - MvvmCross 4 和 Xamarin.iOS -> 使用 Storyboard时如何从 Core 加载 View Controller ?

android - Android 中的全局触摸手势?

android-studio - 访问内部存储 Android Wear

java - 为什么动态加载 dex jar 时会出现 java.lang.NoSuchMethodError 错误?

android - Camera.open 有时会返回 null

ios - 如何使用 Xamarin 表单在 iOS 中设置 GPS 位置确认弹出窗口的间隔时间

java - 具有内部存储的内容提供商

Android - 没有可用空间