Можно ли с помощью алгоритма Rijndael зашифровать файл конфигурации (или разделы в файле конфигурации), а затем расшифровать этот файл на Java? Допущения могут быть такими, как:
- Передать IV (не созданная автоматически идея :: GenerateIV ();)
- Пройти ключ
- BlockSize - 128 (стандартный)
Предполагая, что это можно сделать, мой следующий вопрос по этому поводу будет следующим:
- Может keySize быть 256? Я знаю, что 128 - это AES, но мы хотели бы использовать 256. Я также не знаю, есть ли у Java этот провайдер для 256 или мне нужно использовать BouncyCastle.
- Что такое набивка? PKCS7?
- Я предполагаю, что CiperMode будет CBC
Что-то вроде этого в c #? Но, не знаю, можно ли его расшифровать на Java ... возможно, даже мой С # ошибается?
public static void initCrypt()
{
byte[] keyBytes = System.Text.UTF8Encoding.UTF8.GetBytes("abcdefghijklmnop");
rijndaelCipher = new RijndaelManaged();
PasswordDeriveBytes pdb = new PasswordDeriveBytes(keyBytes, new SHA1CryptoServiceProvider().ComputeHash(keyBytes));
byte[] key = pdb.GetBytes(32);
byte[] iv = pdb.GetBytes(16);
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.PKCS7; //PaddingMode.PKCS7 or None or Zeros
rijndaelCipher.KeySize = 256; //192, 256
rijndaelCipher.BlockSize = 128;
rijndaelCipher.Key = keyBytes;
rijndaelCipher.IV = iv;
}