Un moyen intégré simple de crypter et décrypter un fichier sur un Mac via la ligne de commande?

40

Existe-t-il des outils de ligne de commande intégrés que je peux chiffrer et déchiffrer un fichier texte (et lui fournir une sorte de mot de passe).

codecompleting
la source
Intégré = livré avec le Mac, pré-installé?
wizlog

Réponses:

53

openssl est préinstallé sur Mac OS X.

Vous pouvez utiliser les commandes suivantes:

# 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

(copié à partir de la ligne de commande OpenSSL HOWTO: Comment puis-je simplement chiffrer un fichier? )

Ces commandes utilisent le cryptage AES 256 bits avec Cipher Block Chaining (CBC), qui est à peu près aussi sécurisé qu'il l'est actuellement.

Dennis
la source
1
où saisissez-vous votre mot de passe?
codecompleting
3
Une fois que vous avez exécuté l'une des opensslcommandes ci-dessus , il vous le demande enter aes-256-cbc encryption password.
Dennis
1
@codecompleting Ou précisez -pass pass:MYSECRETPASSWORD, bien que le mot de passe ne soit bien sûr pas caché ps, etc.
Acumenus
2
@Wildcard Oui, le sel (en fait, le vecteur d'initialisation) est stocké avec le texte chiffré dans le fichier crypté.
Dennis
1
@KolobCanyon Encryption n'est jamais avec perte. Par définition, cela nécessite de pouvoir décrypter le texte chiffré pour restaurer le texte en clair d'origine. N'oubliez pas la clé.
Dennis
6

J'ai construit un script shell pour ça. Vous pouvez l'utiliser sur Mac ou 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

Enregistrez simplement ceci dans un fichier texte dans le fichier issue chmod + x pour le rendre exécutable. après cela, utilisez ./filename --help pour obtenir des informations.

persec
la source
2
Une utilisation -ainutile de gonflera inutilement le fichier de sortie.
Acumenus du
5

Mac OS X a la possibilité de créer des fichiers conteneurs chiffrés (similaires à Truecrypt, par exemple), qui peuvent éventuellement augmenter avec la quantité de données qu'ils contiennent. Utilisez l' Utilitaire de disque pour ce faire.

Dans Utilitaire de disque , sélectionnez Fichier »Nouveau» Image de disque vierge… avec l'un des formats d'image clairsemés . Sélectionnez AES-128 ou AES-256 comme cryptage.


Depuis la ligne de commande, la même fonctionnalité est disponible via le hdiutilprogramme.

Daniel Beck
la source
Un peu exagéré pour un seul fichier texte destiné à l'accès en ligne de commande, n'est-ce pas? Pouvez-vous ouvrir le fichier plus tard via Linux et. Al.?
Wildcard
@Wildcard Possible (la portée a tendance à changer); et non, mais ne faisait pas partie de la question.
Daniel Beck
@DanielBeck, bit de sortie identique à Ans1?
Pacerier