Легкий способ зашифровать / расшифровать куки в Java - PullRequest
0 голосов
/ 03 января 2019

Нам нужно сохранить несколько флагов в куки для весеннего приложения MVC. Он будет проверяться и устанавливаться в перехватчике для каждого запроса.Так как нам нужно сделать приложение без сохранения состояния, мы не хотим хранить что-либо в сеансе.

Мой вопрос заключается в том, как наиболее эффективно зашифровать / расшифровать файл cookie?(Как можно меньше процессорного времени / времени).В настоящее время для шифрования AES требуется около 200 мс для шифрования и еще одно аналогичное время для расшифровки.Это очень большие издержки, учитывая, что мы должны делать это для каждого запроса.

Обновленный вопрос с кодом AES, занимающим много времени

public static String encrypt(String value) {
    try {
        IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
        SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
        cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);

        byte[] encrypted = cipher.doFinal(value.getBytes());
        return Base64.encodeBase64String(encrypted);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}   

public static String decrypt(String encrypted) {
    try {
        IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
        SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
        cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
        byte[] original = cipher.doFinal(Base64.decodeBase64(encrypted));

        return new String(original);
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return null;
}

Может кто-нибудь предложить стандартные методы дляТребования такого рода?

Заранее спасибо.

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