Нам нужно сохранить несколько флагов в куки для весеннего приложения 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;
}
Может кто-нибудь предложить стандартные методы дляТребования такого рода?
Заранее спасибо.