良い一日。
キャプチャされたパスワードを受け取り、それをシステムのシャドウパスワードと比較するPythonスクリプトを作成しようとしています。
このテストには Ubuntu 12.10 を使用しています。スクリプトをsudoとして実行します。
def login(user, password):
"Check if user would be able to login using password"
try:
pw1 = spwd.getspnam(user)[1]
allus = spwd.getspall()
print pw1
# pw2 = crypt.crypt(password, pw1[:2])
pw2 = crypt.crypt(password, '\$6\$SALTsalt\$')
print pw2
return pw1 == pw2
except KeyError:
return 0 # no such user
今、上記が返されます
2 つの異なるパスワードがありますが、私はシャドウから 1 つを取得します。
したがって、私の質問は、提供されたパスワードを暗号化して、取得したパスワードと比較できるようにする方法です。どんな助けでもいいです
アドオンを編集
def login(user, password):
"Check if user would be able to login using password"
try:
pw1 = spwd.getspnam(user)[1]
allus = spwd.getspall()
# print allus
print pw1
# pw2 = crypt.crypt(password, pw1[:2])
# pw2 = crypt.crypt(password, '\$6\$SALTsalt\$')
pw2 =hashlib.new()
pw2.update(password)
pw2.digest()
print pw2
return pw1 == pw2
except KeyError:
return 0 # no such user
それも機能しませんでしたシステムパスワードと一致するハッシュを取得するためにhaslibをどのように実装しますか