如何保护Android共享首选项?

如何保护Android共享首选项?,第1张

概述SharedPreferences存储在 Android应用中的常见位置是: /data/data/<package name>/shared_prefs/<filename.xml> 具有root权限的用户可以导航到此位置并可以更改其值.保护它的需要非常重要. 我们可以通过多少种方式加密整个shared_pref的xml文件? 我们都知道我们可以在shared_pref的xml文件中加密和保存数 SharedPreferences存储在 Android应用中的常见位置是:

/data/data/<package name>/shared_prefs/<filename.xml>

具有root权限的用户可以导航到此位置并可以更改其值.保护它的需要非常重要.

我们可以通过多少种方式加密整个shared_pref的xml文件?

我们都知道我们可以在shared_pref的xml文件中加密和保存数据,但这不仅100%安全,因此需要使用密钥加密整个文件.需要帮助了解加密整个xml文件的各种方法.这是一般性问题,这里讨论的各种加密方法可以帮助所有开发人员保护应用程序.

解决方法 您应该注意AndroID的共享首选项是基于XML键值的.你无法改变这个事实(因为它会破坏它的解析器),最多你可以加密密钥和值,所以root用户可以阅读,但不会有任何想法他正在读什么.

为此,您可以使用这样的简单加密

public static String encrypt(String input) {    // This is base64 enCoding,which is not an encryption    return Base64.encodetoString(input.getBytes(),Base64.DEFAulT);}public static String decrypt(String input) {    return new String(Base64.decode(input,Base64.DEFAulT));}

这就是你如何使用它

// WriteSharedPreferences preferences = getSharedPreferences("some_prefs_name",MODE_PRIVATE);SharedPreferences.Editor editor = preferences.edit();editor.putString(encrypt("password"),encrypt("dummypass"));editor.apply(); // Or commit if targeting old devices// ReadSharedPreferences preferences = getSharedPreferences("some_prefs_name",MODE_PRIVATE);String passEncrypted = preferences.getString(encrypt("password"),encrypt("default"));String pass = decrypt(passEncrypted);

你应该知道,SharedPreferences永远不会被构建为安全的,它只是一种持久化数据的简单方法.

您应该也知道我使用的加密并不是最安全的,但它很简单.

有几个库可以提供更好的加密,就像这些

> https://github.com/patrickfav/armadillo
> https://github.com/scottyab/secure-preferences
> https://github.com/ophio/secure-preferences

但他们都认为文件的格式仍然是XML,而且它是基于键值的.你无法改变这一事实.见下文.

cat /data/data/your.package.application/shared_prefs/prefs-test.xml<?xml version='1.0' enCoding='utf-8' standalone='yes' ?><map><string name="JopRH053b7Ogw17Yxmh7Og==">0AB7Y28XEvbQcnXpEZ4j9PtqzFLtm2V3KBXjTO1V704=</string></map>The key is "hemmelighet" and the value is "dette er en hemmelighet".

如果安全问题超出了SharedPreferences仍然是基于键值并且采用XML格式的事实,那么您需要完全避免它.

总结

以上是内存溢出为你收集整理的如何保护Android共享首选项?全部内容,希望文章能够帮你解决如何保护Android共享首选项?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存