Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何写入加密的应用程序数据并对其解密_Android_Security_Encryption - Fatal编程技术网

Android 如何写入加密的应用程序数据并对其解密

Android 如何写入加密的应用程序数据并对其解密,android,security,encryption,Android,Security,Encryption,我想将我的应用程序数据存储在一个文件中,以便每次都可以从应用程序访问它-例如:金钱、用户分数、用户当前精灵。。。 我一生中从未见过加密,我想知道是否有一种简单的方法可以加密数据并将其写入手机,然后在下次应用程序打开时解密。 如果没有简单的方法,如果有人能向我解释加密/解密是如何工作的,那就太好了。使用SharedReferences。 我已经用过了,你不需要加密数据 示例(来自developer.android): 我们可以在根设备上提取首选项文件db。加密存储在首选项中的敏感数据是必要的。无

我想将我的应用程序数据存储在一个文件中,以便每次都可以从应用程序访问它-例如:金钱、用户分数、用户当前精灵。。。 我一生中从未见过加密,我想知道是否有一种简单的方法可以加密数据并将其写入手机,然后在下次应用程序打开时解密。 如果没有简单的方法,如果有人能向我解释加密/解密是如何工作的,那就太好了。

使用SharedReferences。
我已经用过了,你不需要加密数据


示例(来自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();
}
}