2017-08-19 11 views
0

私は古いプロジェクトに取り掛かりました。何が間違っているのかわかりません。 これは、パスワードを初めて作成された部分であり、これはメインスクリプトからである:これは、ログインスクリプトでpasslibを使ってパスワードを確認できません

def first(): 
    if os.path.isfile("secret.txt"): 
     folder() 
    else: 
     os.system("echo > secret.txt") 
     password = getpass.getpass("Set your password please --> ") 
     while len(password) < 4: 
      print("Password must have more then 4 characters!") 
     else: 
      password1 = getpass.getpass("repeat your password please --> ") 
      while password1 != password: 
       print("Password don't match") 
       password1 = getpass.getpass("repeat your password please --> ") 
      if password1 == password: 
       a = open('secret.txt', 'w').close() 
       f = open('secret.txt', 'w') 
       hashed_password = pbkdf2_sha256.hash(password) 
       f.write(hashed_password) 
       os.system("attrib +h secret.txt") 
       folder() 

ここからパスワードがチェックされます

def log_in(): 
    f = open("secret.txt", "r") 
    Password = f.read() 
    x = 0 
    while x < 5: 
     getPass = getpass.getpass("Password:") 
     if not pbkdf2_sha256.verify("getPass", Password): 
      print("Password is invalid") 
      x = x + 1 
     else: 
      f.close() 
      os.system('cls') 
      print("Welcome back sir\n") 
      x = 10 
      time.sleep(2) 
    if x == 5: 
     print("acces denied") 
     time.sleep(5) 
     os.system("nothing.bat") 

だから問題がありますパスワードを確認しようとすると、正しくないと言われますが、パスワードは同じです。ドキュメントでは、それは言う:

注各呼び出しは、新しい塩を生成するので、結果のハッシュの内容は(入力と同じパスワードを使用しているにもかかわらず)の呼び出しの間で異なること:

これがあれば.verify()で問題が発生したら、どうすればよいですか?

私は全体のソースコード

を掲載する予定でない場合、私は私が思う..私はおそらくいくつかの愚かなことをしないのですが、私はそれを見つけるように見えるカント、

答えて

0

これは十分に情報であるかどうかわからないんだけど問題がある:あなたが求めている

if not pbkdf2_sha256.verify(getPass, Password): 

:へ

if not pbkdf2_sha256.verify("getPass", Password): 

変更をstr "getPass"ユーザが入力したパスワードではありません。

関連する問題