web-dev-qa-db-ja.com

Arch Linuxコマンドラインでmd5ハッシュを作成する方法は?

Arch Linuxで、コマンドラインを使用してパスワードの単一のmd5ハッシュを作成するにはどうすればよいですか?もちろん、md5では利用できない安全なパスワードハッシュアルゴリズムがあることは承知していますが、これは実験の一部にすぎません。

8
Paradox

単にechoそれをmd5sumに。

最初の結果は、ハッシュを生成する前に、文字列の最後の改行文字を考慮します。

$ echo P@ssword1 | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba  -

それ以外の場合 @ AFH は、改行文字を使用しない場合は次のようにします。

$ echo -n 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6  -
18
Unfundednut

echo -n 'password' | …を使用すると、パスワードを永続的なストレージ、つまり履歴に書き込むことはできません。

シェルによっては、コマンドの前にスペースを付けることでこれを回避できます(シェルでこれをテストします)。これがどのように処理されるかについては、シェルのドキュメントを読んでください。

または、md5sumを実行し、パスワードを入力してからmd5sumを直接使用することもできます。 Ctrl+D。ぶつけないで Enter パスワードと Ctrl+D、ハッシュに改行を含めたい場合を除きます。

11
Jonas Schäfer

Opensslを使用した例を次に示します

echo -n 'stack overflow' | openssl md5
(stdin)= 481b8423202598ecfb233c5fa68caf68

いつか別のハッシュアルゴリズムが必要になった場合、Opensslはいくつかの異なるハッシュアルゴリズムを実装します。

8
OPSXCQ

誰もがechoを使用することを提案しているようです-少なくとも、ほとんどの場合、ありがたいことに、-nを使用すると、 one の問題(印刷される)が軽減されます。最後に改行)。

ただし、echoは必ずしも一貫しているとは限りません。これには、覚えておく必要のある動作上の癖が多数あり、システム間で互換性がない場合があります。 代わりにprintfを使用 することをお勧めします。

したがって、使用する必要があります

$ printf '%s' 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6  -
$

printfを使用すると、最後に改行が必要な場合は、自分で明示的に改行する必要があります。

$ printf '%s\n' 'P@ssword1' | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba  -
$ echo 'P@ssword1' | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba  -
$

それを取得しないように要求する代わりに(そしてechoがシステム上で同じように機能することを期待して、これは後で実行されます):

$ echo -n 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6  -
$

上記のechoの癖について詳しく説明すると、次のような点があります。

  • さまざまなシステムで動作が異なります。最近のシステムの多くは、echoに改行で出力を終了しないように指示する-nをサポートしていますが、そうでないシステムもあります。そして、実際に-nを出力したい場合はどうでしょうか?一部の実装は、シェルまたは環境の settings に基づいて実際に異なる場合があります。
  • 一部の文字シーケンス(特にバックスラッシュでエスケープされた文字)を特別な方法で処理する、または処理しない場合があります。パスワードにそれらを含めることは完全に不合理ではなく、POSIXは、最初の引数が-nまたはそのいずれかである場合、エコーの動作について何も保証しません(その動作は特に undefined です)。引数には円記号が含まれています。

Echoの代わりにprintfを使用することに関する上記のリンクされた質問への回答には、さらにいくつかのリンクがあり、興味がある場合はさらに読むためのリンクがあります。

4
a CVn

質問は私に何か他のものを示唆しているので、完全にするために:

元のDESベースのcrypt()を/etc/shadowで使用するために置き換えた、MD5ベースのソルトパスワードハッシュメソッドがあります。現在は新しいものに置き換えられていますが、実際に「MD5パスワードハッシュ」に遭遇した場合は、単純なMD5ではなくこれを参照している可能性があります。

これらのMD5ベースのハッシュは、接頭辞$1$でマークされており、openssl passwd -1で計算できます。

3
user240960

echomd5sumを使用してこれを簡単に行うことができます。

 echo -n "password" | md5sum
0
Aaron Franke