Sederhana cara built-in untuk mengenkripsi dan mendekripsi file pada Mac melalui command-line?

40

Apakah ada alat baris perintah bawaan yang dapat saya enkripsi dan dekripsi file teks (dan berikan semacam kata sandi).

menyelesaikan codec
sumber
Built in = hadir dengan Mac, sudah diinstal?
wizlog

Jawaban:

53

openssl hadir pra-instal pada Mac OS X.

Anda dapat menggunakan perintah berikut:

# 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

(disalin dari OpenSSL Command-Line HOWTO: Bagaimana cara mengenkripsi file? )

Perintah-perintah ini menggunakan 256-bit AES ecryption dengan Cipher Block Chaining (CBC), yang hampir seaman sekarang.

Dennis
sumber
1
di mana Anda memasukkan kata sandi Anda?
menyelesaikan codec
3
Setelah Anda menjalankan salah satu dari opensslperintah di atas , ia meminta Anda untuk melakukannya enter aes-256-cbc encryption password.
Dennis
1
@codecompleting Atau tentukan -pass pass:MYSECRETPASSWORD, meskipun kata sandi tentu saja tidak disembunyikan dari ps, dll.
Acumenus
2
@ Kartu Memori Ya, garam (sebenarnya, vektor inisialisasi) disimpan dengan ciphertext dalam file terenkripsi.
Dennis
1
Enkripsi @KolobCanyon tidak pernah rugi. Secara definisi, ini membutuhkan kemampuan untuk mendekripsi ciphertext untuk mengembalikan plaintext yang asli. Jangan lupa kuncinya.
Dennis
6

Saya telah membuat skrip shell untuk itu. Anda dapat menggunakannya di Mac atau di 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

Cukup simpan ini dalam file teks dalam masalah file chmod + x untuk membuatnya dieksekusi. setelah itu gunakan ./filename --help untuk mendapatkan info.

persec
sumber
2
Penggunaan yang -atidak perlu akan mengasapi file output.
Acumenus
5

Mac OS X memiliki kemampuan untuk membuat file kontainer terenkripsi (mirip dengan misalnya Truecrypt), yang secara opsional dapat tumbuh dengan jumlah data yang ditempatkan di dalamnya. Gunakan Disk Utility untuk melakukan ini.

Dalam Disk Utility , pilih File »Baru» Blank Disk Image ... dengan salah satu format gambar yang jarang . Pilih AES-128 atau AES-256 sebagai enkripsi.


Dari baris perintah, fungsi yang sama tersedia melalui hdiutilprogram.

Daniel Beck
sumber
Sedikit berlebihan untuk satu file teks yang ditujukan untuk akses baris perintah, bukan? Bisakah Anda membuka file nanti melalui Linux et. Al.?
Wildcard
@Wildcard Possiblely (ruang lingkup memiliki kecenderungan untuk berubah); dan tidak, tetapi bukan bagian dari pertanyaan.
Daniel Beck
@DanielBeck, output sedikit identik dengan Ans1?
Pacerier