Как расшифровать в PYTHON файл, зашифрованный с помощью AES / CTR / NoPadding в JAVA - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть проблема при расшифровке файла в микросервисе 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);
       }
   }
...