Android 如何写入加密的应用程序数据并对其解密
我想将我的应用程序数据存储在一个文件中,以便每次都可以从应用程序访问它-例如:金钱、用户分数、用户当前精灵。。。 我一生中从未见过加密,我想知道是否有一种简单的方法可以加密数据并将其写入手机,然后在下次应用程序打开时解密。 如果没有简单的方法,如果有人能向我解释加密/解密是如何工作的,那就太好了。使用SharedReferences。Android 如何写入加密的应用程序数据并对其解密,android,security,encryption,Android,Security,Encryption,我想将我的应用程序数据存储在一个文件中,以便每次都可以从应用程序访问它-例如:金钱、用户分数、用户当前精灵。。。 我一生中从未见过加密,我想知道是否有一种简单的方法可以加密数据并将其写入手机,然后在下次应用程序打开时解密。 如果没有简单的方法,如果有人能向我解释加密/解密是如何工作的,那就太好了。使用SharedReferences。 我已经用过了,你不需要加密数据 示例(来自developer.android): 我们可以在根设备上提取首选项文件db。加密存储在首选项中的敏感数据是必要的。无
我已经用过了,你不需要加密数据
示例(来自developer.android):
我们可以在根设备上提取首选项文件db。加密存储在首选项中的敏感数据是必要的。无论如何加密,如果需要解密,都会有一个方法。您可以反编译源代码并找到它。或者更简单地使用GameCIH。如果你使用它,它是否被解密并不重要。然后不要使用解密,而是云同步,检查可疑的东西。谢谢你们,但我不完全理解:如果我使用SharedReferences而我不使用云同步,因为我真的不知道如何或它是什么,不加密可以吗?或者是否有我必须检查的方法?通常,只有当可能的攻击者无法访问解密密钥和/或程序状态时,加密才有意义。否则,它只会使它稍微困难一些(这称为模糊处理)。基本上这意味着,如果攻击者完全控制目标设备(例如,一部或多部根手机),那么加密本身就永远不是完全可靠的。
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}