如何将列表数据加密到SharedPreference

时间:2017-06-02 09:29:41

标签: java android sharedpreferences

我有问题在SharedPreference中加密我的数据这是我当前的SharedPreference,保存数据没有加密。我不知道加密数据的内容。

 public class MySharedPreference {

//this is name PREFS_NAME
        public static final String PREFS_NAME = "LIST_CARD";
//this is CARD where are save data Card 
        public static final String CARD = "CARD";

        public MySharedPreference() {
            super();
        }

//this is functon witch save array list to Sharepreference 

    public void saveCardToSharedPreference(Context context, ArrayList<Card> cardList) {
        SharedPreferences settings;
        SharedPreferences.Editor editor;
        settings = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
        editor = settings.edit();
        Gson gson = new Gson();
        String jsonString = gson.toJson(cardList);
        editor.putString(CARD, jsonString);
        editor.commit();
    }

}

2 个答案:

答案 0 :(得分:0)

如果您了解加密,您可以自己编写,它只是通过多种双向加密算法/哈希(如SHA,AES或其他)处理加密数据。如果不是,您可以搜索&#34;安全的SharedPreference&#34;那里有很多图书馆或支持班。

答案 1 :(得分:0)

以下将帮助您

static SharedPreferences.Editor editor;

public static ArrayList<Card> getListSharedPref(Context context) {
    SharedPreferences sharedPref= PreferenceManager.getDefaultSharedPreferences(context);
    String json=sharedPref.getString("LIST_PREF",null);
    Gson gson=new Gson();
    Type type=new TypeToken<ArrayList<Card>>(){}.getType();

    ArrayList<Card> beans = null ;
    try {
        beans = gson.fromJson(json, type);
    } catch(Exception e) {
        return null ;
    }
    return beans;
}

public static void setListSharedPref(Context context, ArrayList<Card> cardList) {
    SharedPreferences sharedPref= PreferenceManager.getDefaultSharedPreferences(context);
    editor = sharedPref.edit();
    Gson gson=new Gson();
    String json=gson.toJson(cardList);
    editor.putString("LIST_PREF",json);
    editor.commit();

}