在Android中安全地存储/修改/删除字符串

时间:2016-04-20 18:47:16

标签: java android android-studio

我正在制作一个项目,我需要在我的应用程序中存储特定的字符串。我必须能够在用户进行身份验证后的任何给定时间存储,删除和修改它,这是通过使用指纹API完成的。

如果可能的话,我想确保在添加此字符串之前,只有所选指纹,或者仅包含手机中的指纹,才能解锁/显示此字符串

我希望密码检查的弹出窗口如下:

package com.gmtechnology.smartalarm;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;

public class Check_Pass extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();

        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        builder.setView(inflater.inflate(R.layout.check_pass, null))
                // Add action buttons
                .setPositiveButton(R.string.check, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        //Check if the entered string matches the string stored
                        DialogFragment next = new Add_Pass();
                        next.show(getFragmentManager(), "Add_pass");

                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Check_Pass.this.getDialog().cancel();
                    }
                });
        return builder.create();
    }
}

这个弹出窗口有一个编辑文本,我可以捕获输入以用于比较,添加和删除将遵循相同的模式。这里的重点以及如何安全地存储该字符串并对其进行管理。

2 个答案:

答案 0 :(得分:2)

安全存放什么?看看你是否想要一个持久存储,即使你的应用程序关闭后你也需要保存它。然后你应该使用共享首选项..它非常容易使用和修改。或者,如果您只想在应用程序的运行时保存一次,那么只需使用单例类即可。

答案 1 :(得分:0)

正如@ADM所说使用SharedPreference来存储你的String。您可以指定您的数据是私有还是公开。

  

使用0或MODE_PRIVATE作为默认操作,使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE来控制权限。

查看docs或此回答here

在您的情况下,您可以使用指纹验证进行特定活动(操纵您的字符串)。

您应该知道并非所有设备都兼容。