Лучший способ зашифровать и расшифровать данные на Android - PullRequest
0 голосов
/ 23 января 2019

Я хочу зашифровать данные в Android, чтобы сохранить их в общих настройках или отправить их на сервер.

Это класс, который я написал для этого, но я не знаю других способов сделатьэто более совершенный и безопасный.

Скажите, пожалуйста, ваши идеи!

public class Cryptogram {

    private static byte[] iv;
    private static IvParameterSpec ivspec;

    public static byte[] Encrypt(String txt, SecretKey key) {
        try {
            Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
            cipher.init(Cipher.ENCRYPT_MODE, key);
            byte[] cipherText = cipher.doFinal(txt.getBytes("UTF-8"));
            iv = cipher.getIV();
            ivspec = new IvParameterSpec(iv);
            return cipherText;
        } catch (Exception e) {
            return e.toString().getBytes(Charset.forName("UTF-8"));
        }
    }

    public static String Decrypt(byte[] txt, SecretKey key) {
        try {
            Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", Security.getProvider("BC"));
            cipher.init(Cipher.DECRYPT_MODE, key, ivspec);
            String decryptString = new String(cipher.doFinal(txt), "UTF-8");
            return decryptString;
        } catch (Exception e) {
            return e.toString();
        }
    }
}

Полный источник проекта здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...