Gibt es ein Dienstprogramm zum Verschlüsseln einer Datei mit einem von mir erstellten Schlüssel?

Gibt es ein Dienstprogramm zum Verschlüsseln einer Datei mit einem von mir erstellten Schlüssel?

Ich möchte eine Datei (mit AES 256) mit einem Schlüssel verschlüsseln, den ich selbst erstelle und verwalte. Gibt es ein Linux-Befehlszeilenprogramm, das dies unterstützt? gpgNein, und ich glaube, openssldas tut es auch nicht?

Zu Ihrer Information: Ich bin mir völlig bewusst, dass das Erstellen und Verwalten von Schlüsseln selbstnichtgilt als sicher oder als beste Vorgehensweise. Trotzdem möchte ich das aus meinen eigenen, eigentümlichen Gründen tun. Wenn alles andere fehlschlägt, kann ich etwas in Java schreiben, um dies zu tun, aber wenn es ein vorhandenes Dienstprogramm gibt, würde ich es lieber verwenden.

Antwort1

gpg unterstützt AES256, Sie müssen lediglich die Konfigurationsdatei ändern. Es gibt Optionen zum Festlegen der bevorzugten Verschlüsselung und Optionen zum Verschlüsselungszeitpunkt.

gpg rät davon ab, die Verschlüsselungschiffre festzulegen, da diese automatisch basierend auf den Präferenzen ausgewählt wird. Um die Kompatibilität zu maximieren, gibt es eine Reihe unterstützter Schiffre.

hier können Sie die unterstützten Chiffren sehen:

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

und noch einmal mit deaktivierten Chiffren:

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

Antwort2

Schauen Sie sich mcrypt anhand Ihrer Beschreibung an, es sollte Ihren Anforderungen entsprechen. Da Sie damit Ihre eigenen Schlüssel verwenden können. Ich bin mir jedoch nicht sicher, warum Sie gpg nicht verwenden können. TinyCA ist eine weitere Option, wenn Sie versuchen, diese Verschlüsselung für das Web oder zum Signieren von Software zu verwenden.

Sie haben bereits angemerkt, dass Sie die Einschränkungen bei der Selbstsignierung verstehen, daher überlasse ich dies Ihrem Urteil.

Antwort3

Das opensslBefehlszeilenprogramm kann dies mithilfe eines Kennworts aus einer Datei tun:

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

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

Sie könnten -Kden tatsächlich verwendeten Schlüssel festlegen, anstatt ihn aus einem Kennwort abzuleiten. Dann muss allerdings auch der IV manuell festgelegt werden, was nicht sehr praktisch ist.

Die Manualpage istenc(1).

verwandte Informationen