Есть ли утилита для шифрования файла с помощью созданного мной ключа?

Есть ли утилита для шифрования файла с помощью созданного мной ключа?

Я хотел бы зашифровать файл (используя AES 256) с ключом, который я создаю и управляю сам. Есть ли какая-нибудь утилита командной строки Linux, которая поддерживает это? gpgнет, и я не думаю, что opensslона поддерживает?

К вашему сведению, я полностью осознаю, что создание и управление ключами самостоятельнонетсчитается безопасным или лучшей практикой. Тем не менее, по моим собственным идиосинкразическим причинам, это то, что я хочу сделать. Если все остальное не сработает, я могу написать что-то на java, чтобы сделать это, но если есть существующая утилита, я бы предпочел использовать ее.

решение1

gpg поддерживает AES256, вам просто нужно изменить файл конфигурации, есть параметры для установки предпочтительного шифра, а также есть параметры во время шифрования.

gpg не рекомендует устанавливать шифр шифрования, поскольку он выбирает его автоматически на основе предпочтений, а для максимальной совместимости поддерживается ряд шифров.

здесь вы можете увидеть поддерживаемые шифры:

mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

и снова с отключенными шифрами:

mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: AES256, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

решение2

Проверьте mcrypt, основываясь на вашем описании, он должен делать то, что вам нужно. Поскольку он позволяет вам использовать ваши собственные ключи. Хотя я не уверен, почему вы не можете использовать gpg? TinyCA — еще один вариант, если вы пытаетесь использовать это шифрование для веб-сайтов или программного обеспечения для подписи.

Вы уже отметили, что понимаете все предостережения, связанные с самоподписанием, поэтому я оставлю это на ваше усмотрение.

решение3

Утилита opensslкомандной строки может сделать это, используя пароль из файла:

openssl aes-256-ctr -pass file:./passwordfile < file.plain > file.enc

openssl aes-256-ctr -d -pass file:./passwordfile < file.enc > file.plain

Вы можете использовать его -Kдля установки фактического используемого ключа вместо того, чтобы выводить его из пароля, но тогда потребуется также вручную устанавливать IV, так что это не очень удобно.

Страница руководства:enc(1).

Связанный контент