在Android应用中处理机密文本的最安全方法是什么?
基本结构是(text / int)及其相似的变体。
应用程序一次只显示(可读文本/可读文本)的选择,因此一次只能对几个对进行解密。
我需要确保提取完整的(text / int)信息几乎是不可能的 - 如果可能的话: - )
是否有任何标准库/方案来处理这个问题?
非常感谢
编辑(在得到一些非常有趣的回答之后):
似乎即使数据被加密,也可以轻松地从应用程序中取出已解压缩的代码,将其与自编写的提取例程相结合,从而将所有解密的信息都提供给文件。由于加密密钥必须提供给应用程序的用户,因此每个人都可能以这种方式获取数据。
总而言之,没有真正好的解决方案?
答案 0 :(得分:2)
您可以将text / int对保存到SharedPreference中。
因为它不安全,您可以在将数据保存到SharedPreference之前加密数据,方法与Google在Application Licensing包中的方式相同。
更多详情可在Implementing an Obfuscator部分找到。
可以在market_licensing / library / src / com / android / vending / licensing文件夹的SDK中找到AESObfuscator的代码源。
答案 1 :(得分:1)
我认为在您的应用程序中,您可以使用对称加密技术,并且可以将密钥存储在密钥库中。该密钥应使用密码保护。每次运行应用程序时,它都会询问用户密码。如果密码正确,则从密钥库中提取密钥并用于解密数据。在这种情况下,存储数据(text / int对)没有区别,因为所有数据都将被加密。对于Android SDK,请查看包java.security和类java.security.KeyStore
如果您想为应用程序提供您不想提取的数据,那么如果您使用Java编写,则混淆是一种可能的解决方案。如果您希望使用C / C ++编写此功能,请使用Android NDK。