Advertisement
Guest User

Untitled

a guest
Nov 25th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. package com.springer.patryk.mss.utils;
  2.  
  3. import android.content.SharedPreferences;
  4. import android.util.Base64;
  5.  
  6. import org.mindrot.jbcrypt.BCrypt;
  7.  
  8. import java.security.SecureRandom;
  9. import java.util.Random;
  10.  
  11. import se.simbio.encryption.Encryption;
  12.  
  13. /**
  14.  * Created by Patryk on 2017-10-08.
  15.  */
  16.  
  17. public class KeyStoreUtils {
  18.     public static String encryptMessage(String password, String message, SharedPreferences sharedPreferences) {
  19.         final SecureRandom secureRandom = new SecureRandom();
  20.         byte[] iv = new byte[16];
  21.         String salt = BCrypt.gensalt(12);
  22.         secureRandom.nextBytes(iv);
  23.         password = BCrypt.hashpw(password, salt);
  24.         sharedPreferences.edit().putString("salt", salt).apply();
  25.         sharedPreferences.edit().putString("iv", Base64.encodeToString(iv, Base64.DEFAULT)).apply();
  26.         sharedPreferences.edit().putString("password", password).apply();
  27.         Encryption encryption = Encryption.getDefault(password, salt, iv);
  28.         return encryption.encryptOrNull(message);
  29.     }
  30.     public static String decryptMessage(String password, SharedPreferences sharedPreferences) {
  31.         String salt = sharedPreferences.getString("salt", "");
  32.         password = BCrypt.hashpw(password, salt);
  33.         String encryptedMessage = sharedPreferences.getString("message", "");
  34.         byte[] iv = Base64.decode(sharedPreferences.getString("iv",
  35.                 ""), Base64.DEFAULT);
  36.         Encryption encryption = Encryption.getDefault(password, salt, iv);
  37.         return encryption.decryptOrNull(encryptedMessage);
  38.     }
  39.  
  40.     public static String decryptMessage(SharedPreferences sharedPreferences) {
  41.         String password = sharedPreferences.getString("password", "");
  42.         String encryptedMessage = sharedPreferences.getString("message", "");
  43.         String salt = sharedPreferences.getString("salt", "");
  44.         byte[] iv = Base64.decode(sharedPreferences.getString("iv",
  45.                 ""), Base64.DEFAULT);
  46.         Encryption encryption = Encryption.getDefault(password, salt, iv);
  47.         return encryption.decryptOrNull(encryptedMessage);
  48.     }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement