コマンドラインからSHA512パスワードハッシュを生成する方法

コマンドラインからSHA512パスワードハッシュを生成する方法

Linuxでは、SHA1を使用してパスワードハッシュを生成できますsha1pass mypassword。ハッシュを生成するための同様のコマンドラインツールはありますかsha512Bcryptのような問題ですPBKDF2

ベストアンサー1

Red Hatディストリビューション(Fedora、CentOS、RHELなど)では、このコマンドにはmkpasswdDebian / Ubuntuのバージョンに通常含まれているものと同じスイッチセットは含まれていません。

メモ:このコマンドはmkpasswd実際にはパッケージの一部なのでexpect避けてください。これらのコマンドのいずれかを使用して、そのパッケージが属するパッケージを見つけることができます。

$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd

はい

$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386

rpmパッケージを見つけるためにパッケージをインストールする必要はないので、両方の方法を使用することをお勧めします*/mkpasswd

解決策

この問題を解決するには、次のPythonまたはPerlステートメントを使用してSHA-512パスワードを生成できます。次は塩漬けです。

Python(>= 3.3)

$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'

-またはスクリプト-

$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'

Python(2.xまたは3.x)

$ python -c "import crypt, getpass, pwd; \
             print(crypt.crypt('password', '\$6\$saltsalt\$'))"

$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/

注:$ 6 $はsha512を表します。アルゴリズムを指定するこの方法のサポートは、オペレーティングシステムレベルのcrypt(3)ライブラリ関数(通常はlibcryptにあります)のサポートによって異なります。 Pythonのバージョンに依存しません。

真珠

$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/

この例では、パスワードは「password」文字列で、ソルトは「saltsalt」です。両方の例を使用$6$これは、暗号化でSHA-512を使用することを意味します。

おすすめ記事