Cách tích hợp đơn giản để mã hóa và giải mã tệp trên máy Mac thông qua dòng lệnh?


39

Có bất kỳ công cụ dòng lệnh tích hợp nào mà tôi có thể mã hóa và giải mã một tệp văn bản (và cung cấp cho nó một số loại mật khẩu).


Được xây dựng trong = đi kèm với Mac, được cài đặt sẵn?
wizlog

Câu trả lời:


52

openssl được cài đặt sẵn trên Mac OS X.

Bạn có thể sử dụng các lệnh sau:

# 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

(được sao chép từ Dòng lệnh OpenSSL HOWTO: Làm thế nào để tôi đơn giản mã hóa một tập tin? )

Các lệnh này sử dụng mã hóa AES 256 bit với Chuỗi khối mã hóa (CBC), có độ an toàn như hiện tại.


1
bạn nhập mật khẩu ở đâu?
hoàn thành tiền mã hóa

3
Khi bạn thực hiện bất kỳ lệnh nào ở trên openssl, nó sẽ yêu cầu bạn thực hiện enter aes-256-cbc encryption password.
Dennis

1
@codecompleting Hoặc chỉ định -pass pass:MYSECRETPASSWORD, mặc dù mật khẩu sau đó tất nhiên không bị ẩn ps, v.v.
Acumenus

2
@Wildcard Có, muối (thực ra là vectơ khởi tạo) được lưu trữ với bản mã trong tệp được mã hóa.
Dennis

1
@KolobCanyon Mã hóa không bao giờ bị mất. Theo định nghĩa, nó đòi hỏi phải có khả năng giải mã bản mã để khôi phục bản gốc. Đừng quên chìa khóa.
Dennis

6

Tôi đã xây dựng một kịch bản shell cho điều đó. Bạn có thể sử dụng nó trên Mac hoặc trên 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

Chỉ cần lưu tệp này trong tệp văn bản trong tệp chmod + x để phát hành tệp. sau đó sử dụng ./filename --help để nhận infos.


2
Không cần sử dụng -asẽ làm phình to tập tin đầu ra.
Acumenus

5

Mac OS X có khả năng tạo các tệp chứa được mã hóa (tương tự như Truecrypt), có thể tùy ý phát triển với lượng dữ liệu được đặt trong đó. Sử dụng Disk Utility để làm điều này.

Trong Tiện ích đĩa , chọn Tệp »Mới» Đĩa hình ảnh trống với một trong các định dạng hình ảnh thưa thớt . Chọn AES-128 hoặc AES-256 làm mã hóa.


Từ dòng lệnh, chức năng tương tự có sẵn thông qua hdiutilchương trình.


Một chút quá mức cho một tệp văn bản dành cho truy cập dòng lệnh, phải không? Bạn có thể mở tệp sau thông qua Linux et. al.
tự đại diện

@Wildcard Có thể (phạm vi có xu hướng thay đổi); và không, nhưng không phải là một phần của câu hỏi.
Daniel Beck

@DanielBeck, bit đầu ra giống hệt Ans1?
Pacerier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.