【问题标题】:Store Information about Purchase-State on Android securely在 Android 上安全地存储有关购买状态的信息
【发布时间】:2015-04-03 18:41:59
【问题描述】:

在我的应用中,用户可以从 Google Play 购买专业版,还可以兑换代码来激活专业版。 现在我的问题是如何存储这些信息,以便用户不能只是去某处更改布尔值。

我想在 iOS 上拥有一个等效的钥匙串。我做了一些研究,发现 f.e.这篇关于 Android 上的钥匙串的博文:http://nelenkov.blogspot.co.at/2012/05/storing-application-secrets-in-androids.html AccountManager 的事情似乎不符合我的要求?!?

但问题是……我不想用任何像 PIN 保护他的手机这样的东西来打扰用户。不应该有用户交互。我只是想确保用户不能编辑我存储在手机上的信息。然后它还应该同步到其他设备,例如 iOS 上的 Keychain。

你会用什么来归档它?我需要用户无法编辑的 SharedPreferences。我什至不在乎他是否可以看到设置,但不能对其进行编辑...而且它应该会自动在用户设备之间同步...

感谢和欢呼

【问题讨论】:

    标签: android security passwords


    【解决方案1】:

    为什么不使用 SharedPreferences?你甚至可以像这里解释的那样写你的信息加密:

    http://www.codeproject.com/Articles/549119/Encryption-Wrapper-for-Android-SharedPreferences

    另一种方法是在您的应用程序范围内写入一个文件。

    当然,这些解决方案都不是 100% 安全的,因为用户可以删除应用设置。对于同步问题,我会使用标准的 android 备份 API:

    http://developer.android.com/training/cloudsync/backupapi.html

    无论您将信息存储在加密文件还是 sharedPrefs 中,您都可以通过此 API 备份和检索它们。

    【讨论】:

    • SharedPreferences 的问题是用户可以在有根手机上轻松编辑其中的值,不是吗?即使在其中写入加密数据也不会改变任何事情。一个用户只是复制了另一个用户的内容,然后他就完成了......
    • 是的,这是真的,尽管没有多少用户能够做到这一点。您不能想出一个绑定到用户 ID 甚至设备 ID 的复制安全条目吗?因此复制的条目在另一台设备上无效? SQLite 数据库呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    相关资源
    最近更新 更多