ValueError: malformed sha256_crypt hash (checksum
Thewizy
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voila je souhaite crée une simple authentification sur python j'apprend par moi même et je suis encore débutant j'ai rencontré une erreur que je n'arrive pas a comprend ou trouver de solutuions sur internet
Tout aide serait utile!! si vous avez des moyens de faciliter mon code je prend aussi! :)
voila mon code:
et voila l'erreur alors que le pseudo et le mdp sont bien stocké en sha256 dans mon fichier text:
Traceback (most recent call last):
File "C:/Users/manuel.gauthier/PycharmProjects/Apprentissage/Labo2.py", line 103, in <module>
get_line_number_pseudo()
File "C:/Users/manuel.gauthier/PycharmProjects/Apprentissage/Labo2.py", line 81, in get_line_number_pseudo
get_line_number_password()
File "C:/Users/manuel.gauthier/PycharmProjects/Apprentissage/Labo2.py", line 64, in get_line_number_password
password = (sha256_crypt.verify(password, password_file_lines[i]))
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 757, in verify
self = cls.from_string(hash, **context)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\handlers\sha2_crypt.py", line 337, in from_string
implicit_rounds=implicit_rounds,
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\handlers\sha2_crypt.py", line 281, in __init__
super(_SHA2_Common, self).__init__(**kwds)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 1761, in __init__
super(HasRounds, self).__init__(**kwds)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 1376, in __init__
super(HasSalt, self).__init__(**kwds)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 593, in __init__
self.checksum = self._norm_checksum(checksum)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 623, in _norm_checksum
raise exc.ChecksumSizeError(self, raw=raw)
ValueError: malformed sha256_crypt hash (checksum must be exactly 43 chars)
Merci d'avance pour toute aide donné!!!
Thewizy
Voila je souhaite crée une simple authentification sur python j'apprend par moi même et je suis encore débutant j'ai rencontré une erreur que je n'arrive pas a comprend ou trouver de solutuions sur internet
Tout aide serait utile!! si vous avez des moyens de faciliter mon code je prend aussi! :)
voila mon code:
from passlib.hash import sha256_crypt tries = 0 pseudonyme = open("pseudo.txt") password_file = open("password.txt") password_file_lines = password_file.readlines() found = False def new_hash_password(): global pass2 pass2 = sha256_crypt.hash("123") new_valid_password() def new_player_password(): global tries, pass2 while True: pass1 = input('Please enter a password: ') pass2 = input('Now please enter the password again to check: ') if pass1 == pass2: print('You are now logged in welcome!') new_hash_password() else: print('I am sorry but the password does not match') tries += 1 if tries == 3: quit() def new_valid_password(): global password lines_list = password_file.read() password_list = [] password_list.append(pass2) password_list.append(lines_list) with open('password.txt', 'w') as filehandle: filehandle.writelines("%s\n" % place for place in password_list) new_valid_pseudo() def new_valid_pseudo(): global pseudo2 lines_list = open('pseudo.txt').read() new_p = pseudo2 pseudo_list= [] pseudo_list.append(new_p) pseudo_list.append(lines_list) with open('pseudo.txt', 'w') as filehandle: filehandle.writelines("%s\n" % place for place in pseudo_list) print("Hi", pseudo2, ",Welcome on pylilgame!") password_file.close() pseudonyme.close() # connection to server quit() def get_line_number_password(): global password, i password = input("Please enter your password:") password = (sha256_crypt.verify(password, password_file_lines[i])) lookup = password for num, line in enumerate(password_file): if lookup in line: print(num) def get_line_number_pseudo(): global pseudo, i with open('pseudo.txt', 'r') as f: lines = f.read().split("\n") for i, line in enumerate(lines): if pseudo in line.split(): # or word in line.split() to search for full words print("Word \"{}\" found in line {}".format(pseudo, i + 1)) get_line_number_password() def sign_in_password(): global password,password_check, num password = input("Please enter your password:") password_check = (sha256_crypt.verify(password)) if password_check is True: print("CC") def sign_in_profile(): print("dlapdakfoalfq") if __name__ == "__main__": hello = input("Would you like to sign in or sign up(SI or SU)") if hello == "SI": pseudo = input("PSEUDO:") if pseudo in pseudonyme.read(): print("The pseudo exists") get_line_number_pseudo() else: print("This pseudonyme doesn't exist!") if hello == "SU": while True: pseudo = input("PSEUDO:") if pseudo in pseudonyme.read(): print("This pseudonyme is already taken!") else: pseudo2 = input("TYPE YOUR PSEUDO AGAIN:") if pseudo2 == pseudo: new_player_password() else: print("QUIT")<code python>
et voila l'erreur alors que le pseudo et le mdp sont bien stocké en sha256 dans mon fichier text:
Traceback (most recent call last):
File "C:/Users/manuel.gauthier/PycharmProjects/Apprentissage/Labo2.py", line 103, in <module>
get_line_number_pseudo()
File "C:/Users/manuel.gauthier/PycharmProjects/Apprentissage/Labo2.py", line 81, in get_line_number_pseudo
get_line_number_password()
File "C:/Users/manuel.gauthier/PycharmProjects/Apprentissage/Labo2.py", line 64, in get_line_number_password
password = (sha256_crypt.verify(password, password_file_lines[i]))
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 757, in verify
self = cls.from_string(hash, **context)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\handlers\sha2_crypt.py", line 337, in from_string
implicit_rounds=implicit_rounds,
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\handlers\sha2_crypt.py", line 281, in __init__
super(_SHA2_Common, self).__init__(**kwds)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 1761, in __init__
super(HasRounds, self).__init__(**kwds)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 1376, in __init__
super(HasSalt, self).__init__(**kwds)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 593, in __init__
self.checksum = self._norm_checksum(checksum)
File "C:\Users\manuel.gauthier\AppData\Roaming\Python\Python37\site-packages\passlib\utils\handlers.py", line 623, in _norm_checksum
raise exc.ChecksumSizeError(self, raw=raw)
ValueError: malformed sha256_crypt hash (checksum must be exactly 43 chars)
Merci d'avance pour toute aide donné!!!
Thewizy
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, je suggère que tu modifies ton programme en y supprimant toutes les variables globales.
je te suggère aussi de commencer par des exemples plus simples, pour acquérir de bons réflexes.
je te suggère aussi de commencer par des exemples plus simples, pour acquérir de bons réflexes.