Linuxでは、SHA1を使用してパスワードハッシュを生成できますsha1pass mypassword
。ハッシュを生成するための同様のコマンドラインツールはありますかsha512
?Bcrypt
のような問題ですPBKDF2
。
ベストアンサー1
Red Hatディストリビューション(Fedora、CentOS、RHELなど)では、このコマンドにはmkpasswd
Debian / 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を使用することを意味します。