Some time ago, I gave a duo of one-liners that encrypts/decrypts files.
This wasn't good enough for normal usage, so here's a better version that takes care of directories as well by running tar on them.
#!/bin/sh
source="$1"
if [ -d "$source" ]; then
newfilename="$source".tar.encrypted
else
newfilename="$source".encrypted
fi if [ -e "$newfilename" ]; then
echo "ERROR: A filename with the name $newfilename already exists"
exit 1
fi if [ -d "$source" ]; then
# Source is a directory, first tar it
if [ -e "$source".tar ]; then
echo "ERROR: A filename with the name $source.tar already exists"
exit 1
fi
tar cf "$source".tar "$source"
openssl des3 -salt -in "$source".tar -out "$newfilename"
rm -f "$source".tar
else
openssl des3 -salt -in "$source" -out "$newfilename"
fiAnd its evil twin, decrypt:
#!/bin/sh
origfilename=$(basename "$1" .encrypted)
if [ "$origfilename" == "$1" ]; then
echo "ERROR: Encrypted files must have the .encrypted extension"
exit 1
fi
if [ -e "$origfilename" ]; then
echo "ERROR: A filename with the name $origfilename already exists"
exit 1
fi
openssl des3 -d -salt -in "$1" -out "$origfilename" # Check if the output is tarred
tarfilename="$origfilename"
origfilename=$(basename "$origfilename" .tar)
if [ "$origfilename" != "$tarfilename" ]; then
# It was tarred
if [ -e "$origfilename" ]; then
echo "ERROR: A filename with the name $origfilename already exists"
exit 1
fi
tar xf "$tarfilename"
rm "$tarfilename"
fiSave them in your path somewhere and make them executable.