端末から文字列の MD5 ハッシュを直接取得するにはどうすればよいですか?
たとえば、文字列abcdefg
をハッシュ化する必要があります。現在、 md5sum コマンドは入力としてファイル名のみを受け入れます。次の行を入力するだけですべてが完了します。
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
どうすればそれを達成できますか?
また、このようなことを言うことができます:
~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4 -
基本的に@enzotibの説明と同じことを行いますが、おそらく少し単純です。
非常にシンプルで、stdinを受け入れるため、
md5sum <<<"my string"
シェルによって追加される末尾の改行を回避するには:
printf '%s' "my string" | md5sum
$ echo -n 123456 | md5sum | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e
シェルスクリプトを作成できます。
たとえば、スクリプト名はmd5.shです。
#!/bin/bash
echo -n $1 | md5sum | awk '{print $1}'
許可の実行:
chmod +x md5.sh
次に:
$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e
システムがmacOSの場合。このスクリプトを変更する必要があります。
$ echo -n 123456 | md5 | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e
openssl md5 filename
openssl sha1 filename
エコーを使用したコンテンツの文字列パイプ
echo -n 123456 | openssl md5
引数なしでmd5sumを実行すると、ターミナルから入力が読み取られます。必要なものを入力または貼り付け、完了したら、ctrl-d
を押して入力を終了します。
--help
のmd5sum
を簡単に確認すると、コマンドが次のことを示しています。
md5sum -
次に、単純な入力のプロンプトが表示されます。テキストを入力してから使用する Enter その後 Ctrl+D ファイルの終わりを示すためにmd5sum
が入力した生のテキストのMD5を吐き出します Enter、CR、IIRC)。
入力が少なく、配管なし!そして、シェルの履歴にプレーンテキストのパスワードが記録されるのを防ぎます!わー!
末尾のCRが必要ない場合(通常、パスワードをハッシュしたい場合)、ヒットしないでください Enter 前 Ctrl+D、 入る Ctrl+D 代わりに2回。
私のスクリプトでは、この問題について知っておくべきことが2つあることがわかりました。
echo "$myvariable"
を実行するかecho -n "$myvariable"
を実行するかは関係ありませんが、常に文字列にdoubleqoutesを使用し、常に同じメソッドを使用する必要があります。そうでない場合、物事は一致しません。出力では、例に示すように、常に末尾のスペースとダッシュが表示されます。
$ echo -n Welcome | md5sum
7803ffcaea43bb81a439fde13b29bc35 -
それを取り除き、コード7803ffcaea43bb81a439fde13b29bc35
のみを使用するには、echo "$myvariable" | md5sum | cut -d" " -f1
を実行します。
これを行うには多くの例がありますが、明示的または暗黙的に改行を含むものとそうでないものがあるため、それらの一部は同等ではありません。
私は、どの一般的なメソッドに改行が含まれているか、含まれていないかを明確に指定したいと思います
ここに、md5ハッシュを計算するためのいくつかの例を示します。末尾の改行なし(CORRECT):
テキストを含むファイルの使用:
$ echo -n "test" > test.txt
$ wc test.txt
0 1 4 test.txt
$ md5sum test.txt
098f6bcd4621d373cade4e832627b4f6 test.txt
注:-n
in echo
は、「末尾の改行を出力しない」ことを意味します。
-n
インラインでecho
を使用:
$ echo -n "test" | md5sum
098f6bcd4621d373cade4e832627b4f6 -
printf
を使用:
$ printf "%s" "test" | md5sum
098f6bcd4621d373cade4e832627b4f6 -
md5sum
コマンドのみを使用:
(md5sum
と書きましょう、押します Enter 次に、文字列test
を書き込んでから、二重の組み合わせを押します Ctrl+d)
$ md5sum
test098f6bcd4621d373cade4e832627b4f6 -
md5sum -
コマンドの使用:
(md5sum -
と書きましょう、押します Enter 次に、文字列test
を書き込んでから、二重の組み合わせを押します Ctrl+d)
$ md5sum -
test098f6bcd4621d373cade4e832627b4f6 -
ここに、md5ハッシュ付き末尾改行(SO NOT CORRECT)の計算に関するいくつかの例を示します:
テキストを含むファイルの使用:
$ echo "test" > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
$ md5sum test_n.txt
d8e8fca2dc0f896fd7cb4cb0031ba249 test_n.txt
echo
WITHOUT -n
インラインを使用:
echo "test" | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -
ここでは文字列 を使用:
$ md5sum <<< "test"
d8e8fca2dc0f896fd7cb4cb0031ba249 -
md5sum
コマンドのみを使用しますが、 Enter テキストを書いた後のキー:
(md5sum
と書きましょう、押します Enter 次に、文字列test
を書き込んでからagaienを押します Enter かつての組み合わせ Ctrl+d)
$ md5sum
test
d8e8fca2dc0f896fd7cb4cb0031ba249 -
md5sum -
コマンドを使用するが Enter テキストを書いた後のキー:
(md5sum -
と書きましょう、押します Enter 次に、文字列test
を書き込んでからagaienを押します Enter かつての組み合わせ Ctrl+d)
$ md5sum -
test
d8e8fca2dc0f896fd7cb4cb0031ba249 -