Semplice modo integrato per crittografare e decrittografare un file su un Mac tramite riga di comando?


40

Esistono strumenti da riga di comando integrati che posso crittografare e decrittografare un file di testo (e fornirgli una sorta di password).


Built in = viene fornito con il Mac, preinstallato?
wizlog,

Risposte:


53

openssl viene preinstallato su Mac OS X.

Puoi usare i seguenti comandi:

# encrypt file.txt to file.enc using 256-bit AES in CBC mode
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

# the same, only the output is base64 encoded for, e.g., e-mail
openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc

# decrypt binary file.enc
openssl enc -d -aes-256-cbc -in file.enc -out file.txt

# decrypt base64-encoded version
openssl enc -d -aes-256-cbc -a -in file.enc -out file.txt

(copiato da OpenSSL Command-Line HOWTO: Come posso semplicemente crittografare un file? )

Questi comandi utilizzano la crittografia AES a 256 bit con Cipher Block Chaining (CBC), che è sicuro tanto quanto lo è ora.


1
dove inserisci la tua password?
codice

3
Una volta eseguito uno dei opensslcomandi sopra , ti viene chiesto di farlo enter aes-256-cbc encryption password.
Dennis,

1
@codecompleting Oppure specifica -pass pass:MYSECRETPASSWORD, anche se la password non è ovviamente nascosta ps, ecc.
Acumenus,

2
@Wildcard Sì, il salt (in realtà, vettore di inizializzazione) viene memorizzato con il testo cifrato nel file crittografato.
Dennis,

1
@KolobCanyon La crittografia non è mai in perdita. Per definizione, richiede di essere in grado di decrittografare il testo cifrato per ripristinare il testo normale originale. Basta non dimenticare la chiave.
Dennis,

6

Ho creato uno script di shell per questo. Puoi usarlo su Mac o su Linux.

#!/bin/bash
#encrypt files with aes-256-cbc cipher using openssl

#encrypt files
if [ $1 == "-e" ];
then
    if [ -f "$2" ];
    then
    openssl aes-256-cbc -a -e -salt -in "$2" -out "$2.aes"
    else
       echo "This file does not exist!" 
    fi
#decrypt files
elif [ $1 == "-d" ];
then
    if [ -f "$2" ];
    then
        openssl aes-256-cbc -a -d -salt -in "$2" -out "$2.decrypt"
    else
        echo "This file does not exist!" 
    fi
#show help
elif [ $1 == "--help" ];
then
    echo "This software uses openssl for encrypting files with the aes-256-cbc cipher"
    echo "Usage for encrypting: ./encrypt -e [file]"
    echo "Usage for decrypting: ./encrypt -d [file]"
else
    echo "This action does not exist!"
    echo "Use ./encrypt --help to show help."
fi

Basta salvarlo in un file di testo in questione chmod + x file per renderlo eseguibile. dopodiché usa ./filename --help per ottenere informazioni.


2
L'uso -ainutile di gonfia inutilmente il file di output.
Acumenus,

5

Mac OS X ha la capacità di creare file container crittografati (simili ad esempio a TrueCrypt), che possono facoltativamente crescere con la quantità di dati inseriti in essi. Utilizzare Utility Disco per fare questo.

In Utility Disco , seleziona File »Nuovo» Immagine disco vuota ... con uno dei formati di immagini sparse . Seleziona AES-128 o AES-256 come crittografia.


Dalla riga di comando, la stessa funzionalità è disponibile tramite il hdiutilprogramma.


Un po 'eccessivo per un singolo file di testo destinato all'accesso alla riga di comando, non è vero? Puoi aprire il file in un secondo momento tramite Linux et. al.?
Wildcard il

@Wildcard possibilmente (l'ambito ha la tendenza a cambiare); e no, ma non faceva parte della domanda.
Daniel Beck

@DanielBeck, bit di uscita identico a Ans1?
Pacerier
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.