Nitin Sharma
Nitin Sharma

Reputation: 100

How secure Shared Preferences data in my application from Security Auditor

How to secure SharedPreferences data in my application?.

I use 2 step for this but in Security Audit hacker are able to hack my data.

1 Step-

SharedPreferences sharedPreferences = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();           
editor.putString("key", value);
editor.commit();

2 Step- Use SecureSharePreferences

SecurePreferences securePrefs = new SecurePreferences(context, "key", "my_user_prefs.xml");
SharedPreferences.Editor editor =securePrefs.edit();
editor.putString(key, value);
editor.commit();

Any other method to handle this.

After read some Answer I update my code with encrypt data but problem still exist.Security auditor still getting application sharedpreference.file from app memory.

SharedPreferences sharedPreferences = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
        String keyEncript = EncriptionDecriptionUtils.encriptionOfData(key).toString().trim().replaceAll("\r\n", "");
        String value = sharedPreferences.getString(keyEncript, "").trim().replaceAll("\r\n", "");
        String valuedecript = EncriptionDecriptionUtils.decriptionOfData(value).toString().trim().replaceAll("\r\n", "");
        return valuedecript;

Upvotes: 1

Views: 1411

Answers (2)

Kakumanu siva krishna
Kakumanu siva krishna

Reputation: 714

You can encrypt & decrypt the shared preferences data using AES algorithm.If you open shared preferences explicitly you will get encrypted information only.For your reference look into this Securing SharedPreferences Data using AES algorithm

Upvotes: 1

Pawan Lakhotia
Pawan Lakhotia

Reputation: 385

On a rooted phone, it can access the shared preferences for your app. Also, on any phone the user can delete all the data that it's stored in shared preferences by clearing the cache in the application manager. A safe way to store data would be to encrypted it with AES and save it in a text file in the root folder of your app.

Upvotes: 0

Related Questions