У меня есть проблема при расшифровке файла в микросервисе Python, зашифрованного ранее в микросервисе java с использованием режима AES / CTR / NoPadding.Как я могу извлечь IV и восстановить ключ из закодированных байтов?И можете ли вы порекомендовать мне библиотеку для шифрования в python
Это код шифрования в Java:
/**
* Initialize a Cipher.
*
* @param privateKey Private key
* @param mode Mode (encrypt or decrypt)
* @return Cipher
* @throws Exception e
*/
private static Cipher getCipher(String privateKey, int mode) throws Exception {
PBEKeySpec keySpec = new PBEKeySpec(privateKey.toCharArray(), SALT.getBytes(), 2000, 256);
SecretKeyFactory skf = SecretKeyFactory.getInstance("PBEWITHSHA256AND256BITAES-CBC-BC");
SecretKey desKey = skf.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("AES/CTR/NOPADDING");
cipher.init(mode, desKey);
return cipher;
}
/**
* save an Encrypted File to specified path.
*
* @param unencryptedFileBytes unencryptedFileBytes
* @param path Path to save Encypted File into it
* @return void
* @throws Exception e
*/
public static void saveEncrypedFile(byte[] unencryptedFileBytes, Path path) throws Exception {
Cipher cipher = getCipher("privatekey", Cipher.ENCRYPT_MODE);
try (InputStream inputStream = new ByteArrayInputStream(unencryptedFileBytes)) {
Files.copy(new CipherInputStream(inputStream, cipher), path);
}
}