У меня есть Xml, который хранится в String. Мне нужно зашифровать его с помощью сеансового ключа (AES и 256 бит).Шифрование Xml с использованием ключа сеанса
Я использую следующий код для генерации ключа:
public byte[] generateSessionKey() throws NoSuchAlgorithmException, NoSuchProviderException
{
KeyGenerator kgen = KeyGenerator.getInstance("AES","BC");
kgen.init(SYMMETRIC_KEY_SIZE);
SecretKey key = kgen.generateKey();
byte[] symmKey = key.getEncoded();
return symmKey;
}
Используя следующий код для шифрования данных с помощью ключа сеанса:
public byte[] encryptUsingSessionKey(byte[] skey, byte[] data) throws InvalidCipherTextException
{
PaddedBufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new AESEngine(), new PKCS7Padding());
cipher.init(true, new KeyParameter(skey));
int outputSize = cipher.getOutputSize(data.length);
byte[] tempOP = new byte[outputSize];
int processLen = cipher.processBytes(data, 0, data.length, tempOP, 0);
int outputLen = cipher.doFinal(tempOP, processLen);
byte[] result = new byte[processLen + outputLen];
System.arraycopy(tempOP, 0, result, 0, result.length);
return result;
}
Итак, я хочу знать, я делаю это правильно или неправильно?
Спасибо за все предложения, я их применим. Но я также хочу знать, что шифрование, сделанное вышеуказанным кодом, является правильным или нет? – Mudit
Это зависит от того, что означает «право или нет»? Лучшая практика: № – zaph
Я хотел зашифровать XML с помощью ключа сеанса с помощью AES и PKCS7Padding, поэтому я хочу знать, что результат шифрования из вышеуказанного кода может быть расшифрован или нет? Прямо сейчас я не забочусь о безопасности – Mudit