Linuxのユーザのパスワードを保存する方法
Linuxでは、ユーザのパスワードは
根 $6 $ mksuwinomx.9 zxyp $ yjo 8 rvjj 5 i i .ZGRT 0 ... ここでは、最初の2つのフィールドに焦点を当てる:最初の1つのユーザー名、2番目のハッシュされたパスワードです.
ハッシュされたパスワード
6 ->ハッシュメソッドID mksuwinomx.9 zxyp ->塩 yjo 8 rvjj 5 i .zgrt 0 ->ハッシュ文字列 6ハッシュメソッドIDは、Linuxは複数のハッシュメソッドをサポートしています. 1 : MD 5 2 A : Blowfish (主流glibcではありません;いくつかのLinuxディストリビューションで追加されました) 5 : SHA - 256 ( glibc 2.7以降) 6 : SHA - 512 ( glibc 2.7以降) ですから、私たちの例では、LinuxがSHA - 512アルゴリズムで塩を使ってパスワードをハッシュしていることを知っています
Pythonで確認する
Pythonには
ハッシュメソッドSHA - 512にランダムなsaltを生成するには、次の手順に従います.
リファレンス http://man7.org/linux/man-pages/man3/crypt.3.html
https://docs.python.org/3/library/crypt.html
/etc/shadow
ファイルを見てください.root:$6$MksUWINOmX.9ZXyP$yjO8RvJj5i9.G/mOx7ZA3npdX05iv5Z07k3zI/02LMBjPE01e8hUlVhMNNpzRIWG1n0n6flWZGgW2T/LsZGRT0:17885:0:99999:7:::
この文字列を":"で割ると、いくつかのフィールドが得られます:ハッシュされたパスワード
$6$MksUWINOmX.9ZXyP$yjO8RvJj5i...ZGRT0
この場合、3つの部分があります.$hash-method-id$salt$hashed-string
このような場合、上記の文字列を"$"で区切った場合、/etc/shadow
ファイル.Pythonで確認する
Pythonには
crypt
このハッシングのためのライブラリ.ハッシュメソッドSHA - 512にランダムなsaltを生成するには、次の手順に従います.
>>> import crypt
>>> crypt.mksalt(crypt.METHOD_SHA512)
'$6$nPDcj0JFDC76QDxe'
>>> crypt.mksalt(crypt.METHOD_SHA512)
'$6$z5XUE0nOLtk8uTEn'
>>> crypt.mksalt(crypt.METHOD_SHA512)
'$6$Qu6XnlFT16QUTfiQ'
ハッシュのパスワードを確認するには、次のようにします.crypt.crypt
saltを使用したプレーンパスワードのハッシュ値を計算するには、以下のようにします.>>> import crypt
>>> crypt.crypt("myloginpwd", "$6$MksUWINOmX.9ZXyP")
'$6$MksUWINOmX.9ZXyP$yjO8RvJj5i9.G/mOx7ZA3npdX05iv5Z07k3zI/02LMBjPE01e8hUlVhMNNpzRIWG1n0n6flWZGgW2T/LsZGRT0'
このハッシュされた文字列は/etc/shadow
ファイル.リファレンス
https://docs.python.org/3/library/crypt.html
Reference
この問題について(Linuxのユーザのパスワードを保存する方法), 我々は、より多くの情報をここで見つけました https://dev.to/0xbf/how-linux-stores-user-s-password-linux-tips-nm5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol