Mac'teki bir dosyayı komut satırı aracılığıyla şifrelemek ve şifresini çözmek için basit yerleşik yöntem?


40

Bir metin dosyasını şifreleyip şifresini çözebildiğim yerleşik bir komut satırı aracı var mı (ve bir çeşit şifre sağlayabilir).


Yerleşik = önceden yüklenmiş olan Mac ile birlikte mi geliyor?
wizlog

Yanıtlar:


53

openssl Mac OS X'te önceden yüklenmiş olarak geliyor.

Aşağıdaki komutları kullanabilirsiniz:

# 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

( OpenSSL Komut Satırı'ndan kopyalandı. NASIL: Bir dosyayı nasıl şifreleyebilirim? )

Bu komutlar Cipher Block Chaining (CBC) ile birlikte 256-bit AES şifrelemesini kullanır ve bu işlem şu anda olduğu kadar güvenlidir.


1
şifrenizi nereye girersiniz?
kod

3
Yukarıdaki opensslkomutlardan herhangi birini çalıştırdığınızda , sizden ister enter aes-256-cbc encryption password.
Dennis

1
@codecompinging Veya -pass pass:MYSECRETPASSWORDparolanız sonradan gizlenmemiş olmasına rağmen, belirtin , psvb.
belirtin

2
@Wildcard Evet, tuz (aslında, başlangıç ​​vektörü) şifreli dosyadaki şifreli metin ile birlikte saklanır.
Dennis,

1
@KolobCanyon Şifreleme hiçbir zaman kayıp olmaz. Tanım olarak, orijinal düz yazı metnini geri yüklemek için şifreli metnin şifresini çözmeyi gerektirir. Sadece anahtarı unutma.
Dennis,

6

Bunun için bir kabuk betiği oluşturdum. Mac veya Linux'ta kullanabilirsiniz.

#!/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

Basitçe bunu, çalıştırılabilir hale getirmek için sayı chmod + x dosyasındaki bir metin dosyasına kaydedin. Bu kullanımdan sonra ./dosyaadı - bilgi almak için yardım


2
Gereksiz kullanımı -a, çıktı dosyasını gereksiz yere şişirir.
Acumenus

5

Mac OS X, isteğe bağlı olarak yerleştirilen veri miktarıyla birlikte büyüyebilecek şifreli kap dosyaları (örneğin, Truecrypt'e benzer) oluşturma yeteneğine sahiptir. Bunu yapmak için Disk Yardımcı Programını kullanın .

In Disk Utility seçin Dosya »New'in» Boş Disk Image ... biriyle seyrek görüntü formatları. AES-128 veya AES-256'yı şifreleme olarak seçin.


Komut satırından aynı fonksiyona hdiutilprogram üzerinden erişilebilir .


Komut satırı erişimi için amaçlanan tek bir metin dosyası için biraz overkill, değil mi? Dosyayı daha sonra Linux et. ark.?
Joker

@Wildcard Muhtemelen (kapsamın değişme eğilimi vardır); ve hayır, ama sorunun bir parçası değildi.
Daniel Beck

@DanielBeck, çıkış biti Ans1 ile aynı mı?
Pacerier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.