2

ファイルを暗号化するためのスクリプト化された方法を作成しようとしています。これを取得して、次のアクションを実行しようとしています:

暗号化しているファイルに対して MD5 チェックサムを実行し、MD5 値だけを取り除いて変数に入れます。

ユーザーにパスワードを尋ねます (パスワードに bash からの入力を使用する代わりに、openssl 入力方法を使用できればいいのにと思いますが、端末に出力する場合は安全性が低いようです)。これを行うための有効で安全な方法はありますか?

とにかく、そのパスワードを取得し、# を追加し、その後に md5 サムを追加します。IE: passhere#md5sumoforiginalfile

完璧な世界では、最初にファイルを tar.gz し、圧縮されたアーカイブに対して暗号化を実行します。

これは私が困惑しているところです.md5を印刷し、md5ハッシュをパスワードに組み込む際に問題が発生しています.また、そのままの方法で入力を行うのは正しくないと感じています.これを行うためのより良い方法はありますか?

よろしくお願いします!

関数は次のとおりです (元は作成者: Matt Reid によって Web から別のスクリプトから取得されました)。

function encrypt() {
filein="$1"
fileout="$2"

if [ "$filein" = "no" ]; then
    echo -n "No input file specified, what file are we encrypting: "
    read filein
fi

if [ -r "$filein" ]; then
    if [ "$fileout" = "no" ]; then
        fileout="$filein.aes256"
    fi
    if [ -f "$fileout" ]; then
        echo "Output file exists already, encrypting will overwrite this file."
        echo -n "Do you want to encrypt anyway? [Y/n]: "
        read choice
        if [ "$choice" = "Y" ] || [ "$choice" = "y" ] || [ "$choice" = "" ]; then
    openssl enc -aes-256-cbc -a -salt -in $filein -out $fileout
            generate_digests $filein $fileout
            sdelete $filein
            exit 0;
        else 
            exit 2;
        fi      
    else
    filemd5=$(openssl dgst -md5 $filein | cut -d '  ' -f 1)
    echo "Please enter password: "
        read passvar
    openssl enc -aes-256-cbc -a -salt -out $fileout -k ${passvar}#${filemd5}
        generate_digests $filein $fileout
        sdelete $filein
        exit 0;
    fi
else
    echo "Input file does not exist or is not readable. You're attempting to encrypt file: '$filein'"
    exit 1;
fi
}

編集: わかりました、これを機能させることができました (tar 部分を除く) が、私の質問が残っています。これを変更して、パスワードに openssl enc からの非表示の入力を使用し、入力したパスワードを変更する方法はありますか? #md5sumhere を追加して ? どうすればいいのかよくわかりません。

再度、感謝します。

4

1 に答える 1

3

プレーンテキストのパスワードではなく、ハッシュ化されたパスワードを使用します。

salt="astringtobeusedassalt"
hashedpassword=`openssl passwd -salt $salt`
echo $hashedpassword
finalpassword="$hashedpassword""#""$filemd5" # $filemd5 variable from your script

補足として:sha1ダイジェストを計算するときsha256は以上を使用してください (さらに望ましい)

于 2012-09-05T08:36:13.147 に答える