Мне нужно зашифровать данные в Java с помощью этого "DESede / CBC / NoPadding" , потому что в C# оно будет расшифровано следующим образом:
C# Код
MD5CryptoServiceProvider hashProvider = new MD5CryptoServiceProvider();
TripleDESCryptoServiceProvider tripDES = new TripleDESCryptoServiceProvider();
// MD5 the key
byte[] tdeskey = hashProvider.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
// Set Key
tripDES.Key = tdeskey;
// Set IV
tripDES.IV = UTF8.GetBytes(iv);
// Use CBC for mode
tripDES.Mode = CipherMode.CBC;
// Zero Padding
tripDES.Padding = PaddingMode.Zeros;
Но когда я пытаюсь это сделать, у меня возникает такая ошибка:
javax.crypto.IllegalBlockSizeException: Input length not multiple of 8 bytes
Поэтому я изменяю ее на DESede / CBC / PKCS5Padding . Но теперь C# не может прочитать его, так как PaddingMode.Zeros установлен в приведенном выше коде.
Есть ли у вас какие-либо идеи, как я могу зашифровать его, придерживаясь NoPaddingMode?