以前、pythonのライブラリを使って暗号化・復号化する記事を書いたりもしましたが、そんな事をしなくても大抵の場合、opensslをコマンドから実行すれば十分ということに気が付きました。
動作確認環境
arch linux
openssl 1.1.1
python3.8.1
$ openssl enc -e -aes-256-cbc -k 'password' -in original_file -out encrypted_file
openssl 1.1.1だと"Using -iter or -pbkdf2 would be better."という警告がでますが、このオプションをつけると古いバージョンで復号化できなくなるので注意。
decrypt.py
from subprocess import run, PIPE
password = 'password'
file_path = 'encrypted_file'
completed = run(args=[
'openssl', 'enc', '-d', '-aes-256-cbc',
'-k', password, '-in', file_path],
check=True, stdout=PIPE)
print(completed.stdout.decode())