it-swarm.dev

Jak rychle zašifruji soubor pomocí AES?

Chci zašifrovat soubor pomocí AES-256. Jak to mohu udělat rychle a snadno a jak to mohu - nebo někoho jiného - znovu dešifrovat?

81
Stefano Palazzo

Bohužel neexistuje snadné řešení pro zabezpečení vašich věcí. Přemýšlejte o svém případu použití, možná se hodí něco jiného než obyčejný AES.


Pokud chcete velmi jednoduché šifrování nezávislé na platformě, můžete použít openssl .

Vezměte prosím na vědomí: Můžete to použít ke skrytí narozeninových dárků.

  1. Jak bylo uvedeno v komentářích, tato metoda používá funkci derivace naivního klíče, takže vaše heslo musí být superlativně dobré, abyste měli šanci být v bezpečí.
  2. Tato metoda navíc neověřuje ciphertext, což znamená, že útočník může upravit nebo poškodit obsah, aniž byste si toho všiml.
  3. Pro mnoho typů zabezpečení není šifrování jednoduše dostačující (např. Pro bezpečnou komunikaci nelze použít pouze šifrování)

Pokud stále chcete používat openssl:

  • Šifrování:

    openssl aes-256-cbc -in attack-plan.txt -out message.enc

  • Dešifrování:

    openssl aes-256-cbc -d -in message.enc -out plain-text.txt

Můžete získat openssl na base64- kódujte zprávu pomocí -a zapněte šifrování i dešifrování. Tímto způsobem můžete například vložit ciphertext do e-mailové zprávy. Vypadá to takto:

stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=

Všimněte si, že máte na výběr šifry a provozní režimy. Pro normální použití doporučuji aes 256 v režimu CBC. Jedná se o šifry, které máte k dispozici (počítají se pouze AES):

aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb

Viz také:

Upozornění:

OpenSSL vás požádá o heslo. Toto není šifrovací klíč, není omezeno na 32 bajtů! Pokud budete přenášet soubory s někým jiným, vaše sdílené tajemství by mělo být velmi silné. Na tomto webu můžete zjistit, jak dobré je vaše heslo:

Upozornění: Ověřil jsem, že tyto weby neposílají vaše heslo na server, ale které se mohou kdykoli změnit. Použijte tyto weby s nástroji dev/inspector a zkontrolujte, zda nic neposílají před zadáním silného hesla.

89
Stefano Palazzo

Rád používám příkaz gpg:

Šifrovat:

gpg --cipher-algo AES256 --symmetric filename.tar.gz

Těsnopis:

gpg --cipher-algo AES256 -c filename.tar.gz

To bude vyžadovat heslo.

Dešifrovat:

gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg

Těsnopis:

gpg -o filename.tar.gz -d filename.tar.gz.gpg

Můžete také přidat cipher-algo AES256 to ~/.gnupg/gpg.conf, aby se AES256 stal výchozím. (Podle manpage je to CAST5 )

29
scrrr

7z (pokud je použita možnost heslo ) používá 256bitové šifrování AES (s klíčem SHA256 ).

Nainstalujte (p7Zip-full), klikněte pravým tlačítkem na soubor nebo adresář, který chcete zašifrovat, a zvolte Komprimovat , . 7z a Další možnosti / Heslo .

enter image description here

Pro dešifrování klikněte pravým tlačítkem na soubor . 7z a vyberte Rozbalte zde .

17
arrange

aescrypt

Propojená webová stránka obsahuje open-source 256-bitový nástroj šifrování a dešifrování aes a je multiplatformní - MacO, Windows, Linux a další prostřednictvím Java.

Šifrovat: aescrypt -e <file>

Dešifrovat: aescrypt -d <file>

Svou domovskou složku můžete zálohovat a zašifrovat pomocí syntaxe:

tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes

instalace Ubuntu

Stáhněte a extrahujte zdroj

make
Sudo make install

jiné platformy

Stáhněte si binární soubory nebo zdrojový kód z webu.

4
fossfreedom

Mnoho podnětů, které bych učinil, již bylo předloženo v tomto vláknu. V zásadě je openssl opravdu nejjednodušší způsob, jak šifrovat soubor nebo skript. Chtěl bych však varovat před použitím AES-256 jen proto, že není k dispozici ve všech verzích openssl on = některé platformy. Většina novějších operačních systémů ... tj. Linux to má. Ale jiní, jako je AIX 5.3, ne (myslím, že také HP-UX). Pokud chcete použít svůj soubor nebo skript na různých platformách, důrazně doporučujeme použít AES-128 , protože je k dispozici všude.

Jak můžete "rychle a snadno" zašifrovat soubor pomocí AES-128?

Web jako www.ShellScrypt.com používá openssl AES-128 poměrně intenzivně k šifrování skriptů Shell a poté vytváří šifrované kopie spustitelných skriptů. Jediné, co musíte udělat, je vložit skript na web a vygeneruje se pro vás soubor Zip. Tento soubor Zip bude obsahovat šifrovanou (a spustitelnou, pokud se jedná o skript) verzi vašeho souboru. To vám umožní " snadno " a " pohodlně " zašifrovat soubor/skript, aniž by bylo nutné vyhovět požadavkům každého balíčku nebo modulu na každém systému, který hodláte skript používat, nebo spouštět několik složitých a matoucích příkazů openssl.

Níže je uveden základní šifrování/dešifrování openssl příkaz, který používá AES- 128:

[email protected]:~$ 
[email protected]:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
[email protected]:~$
[email protected]:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
[email protected]:~$ 
[email protected]:~$
3

Kromě odpovědi Stefana Palazza jsem vytvořil malou bash funkci, která funguje podobně jako příkaz base64.

Soubor aes256 zašifruje soubor a poté jej zakóduje base64. Při provádění zpětného chodu bude base64 dekódovat, dešifrovat a poté vyplivnout původní prostý text.

aes256() {
  decodeMe=""
  isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"

  if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
    decodeMe="-d"
    shift
  fi

  if [ "$isPipe" = "true" ]; then
    read input
    printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
    exitCode="$?"
  else
    openssl aes-256-cbc -a $decodeMe -in "$*"
    exitCode="$?"
  fi

  unset isPipe decodeMe input
  return "$exitCode"
}

Použití:

echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=

echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string

aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password

aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
1
aggregate1166877