Расшифруйте файл, используя код Python, загруженный с s3. ⇐ JAVA
Расшифруйте файл, используя код Python, загруженный с s3.
Я загружаю файл с использованием шифрования AWS. Клиент выглядит так:
public static AmazonS3 createEncryptedS3Client( Конфигурация шифрования, AWSCredentialsProvider awsCredentialsProvider, CloudStorageConfig CloudStorageConfig) { если (encryptionConfig.encryptionType().equals(EncryptionType.NONE)) { выдать новое IllegalArgumentException( «Тип шифрования NONE недопустим для создания зашифрованного клиента.»); } SecretKeySpec secretKey = новый SecretKeySpec(Base64.getDecoder().decode(encryptionConfig.encryptionKey()), "AES"); вернуть AmazonS3EncryptionClientBuilder.standard() .withCredentials(awsCredentialsProvider) .withCryptoConfiguration(новая CryptoConfiguration(CryptoMode.EncryptionOnly)) .withEncryptionMaterials( новый StaticEncryptionMaterialsProvider (новый EncryptionMaterials (secretKey))) .withRegion(Regions.fromName(cloudStorageConfig.getBucketRegion())) .строить();} Как только это будет загружено, я буду скачивать из пользовательского интерфейса s3. Теперь, используя Python, я хочу его расшифровать:
def decrypt_file(входной_путь, выходной_путь, закодированный_ключ): # Декодируем ключ AES из Base64 aes_key = base64.urlsafe_b64decode(encoded_key) # Здесь укажите режим шифрования, например, CBC # ВАЖНО: вам нужен IV, используемый для шифрования; без него расшифровка невозможна # Предполагая, что IV — это первые 16 байт файла с open(input_path, 'rb') как зашифрованным_файлом: iv = Encrypted_file.read(16) # Считайте IV из файла зашифрованные_данные = зашифрованный_файл.read() # Прочитать остальную часть зашифрованных данных # Инициализируем шифр для расшифровки шифр = Шифр(алгоритмы.AES(aes_key), режимы.CBC(iv), backend=default_backend()) расшифровщик = шифр.декриптор() #Расшифруем данные decrypted_data = decryptor.update(encrypted_data) + decryptor.finalize() # Записываем расшифрованные данные в выходной файл с open(output_path, 'wb') как decrypted_file: decrypted_file.write(расшифрованные_данные) print(f"Расшифрованные данные записаны в '{output_path}'.") Но загруженный файл не того формата, т. е. я не могу его открыть. Причина этого, по мнению IV, мне неизвестна.
Как расшифровать файл, загруженный через клиент Java AWS?
Я загружаю файл с использованием шифрования AWS. Клиент выглядит так:
public static AmazonS3 createEncryptedS3Client( Конфигурация шифрования, AWSCredentialsProvider awsCredentialsProvider, CloudStorageConfig CloudStorageConfig) { если (encryptionConfig.encryptionType().equals(EncryptionType.NONE)) { выдать новое IllegalArgumentException( «Тип шифрования NONE недопустим для создания зашифрованного клиента.»); } SecretKeySpec secretKey = новый SecretKeySpec(Base64.getDecoder().decode(encryptionConfig.encryptionKey()), "AES"); вернуть AmazonS3EncryptionClientBuilder.standard() .withCredentials(awsCredentialsProvider) .withCryptoConfiguration(новая CryptoConfiguration(CryptoMode.EncryptionOnly)) .withEncryptionMaterials( новый StaticEncryptionMaterialsProvider (новый EncryptionMaterials (secretKey))) .withRegion(Regions.fromName(cloudStorageConfig.getBucketRegion())) .строить();} Как только это будет загружено, я буду скачивать из пользовательского интерфейса s3. Теперь, используя Python, я хочу его расшифровать:
def decrypt_file(входной_путь, выходной_путь, закодированный_ключ): # Декодируем ключ AES из Base64 aes_key = base64.urlsafe_b64decode(encoded_key) # Здесь укажите режим шифрования, например, CBC # ВАЖНО: вам нужен IV, используемый для шифрования; без него расшифровка невозможна # Предполагая, что IV — это первые 16 байт файла с open(input_path, 'rb') как зашифрованным_файлом: iv = Encrypted_file.read(16) # Считайте IV из файла зашифрованные_данные = зашифрованный_файл.read() # Прочитать остальную часть зашифрованных данных # Инициализируем шифр для расшифровки шифр = Шифр(алгоритмы.AES(aes_key), режимы.CBC(iv), backend=default_backend()) расшифровщик = шифр.декриптор() #Расшифруем данные decrypted_data = decryptor.update(encrypted_data) + decryptor.finalize() # Записываем расшифрованные данные в выходной файл с open(output_path, 'wb') как decrypted_file: decrypted_file.write(расшифрованные_данные) print(f"Расшифрованные данные записаны в '{output_path}'.") Но загруженный файл не того формата, т. е. я не могу его открыть. Причина этого, по мнению IV, мне неизвестна.
Как расшифровать файл, загруженный через клиент Java AWS?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение