Как сохранить хешированную строку в словаре - PullRequest
0 голосов
/ 12 ноября 2019

Я новичок в python и пытаюсь сохранить хешированную строку в словаре. Я не знаю, как и не повезло, погугливая, кто-нибудь может мне помочь? Вот мой код:

'' '

  import hashlib

  has_account = input('Do you have an account already (Y or N)?: ')
  has_account = str.title(has_account)


  if has_account == 'N':
 new_user = {}
 new_username = input('Please create a username: ')
 new_password = input('Please enter a password at least 6 digits long: ')
 while len(new_password) < 6:
     new_password = input('Please enter a password at least 6 digits long: ')
  reentered_password = input('Please reenter you password: ')
  while new_password != reentered_password:
     print('Passwords are different, please renter both passwords')
      new_password = input('Please enter a password at least 6 digits long: ')
      while len(new_password) < 6:
         new_password = input('Please enter a password at least 6 digits long: ')
      reentered_password = input('Please reenter you password: ')

   buffer = new_password.encode('utf-8')
  hash_object = hashlib.sha1(buffer)
  buffer = hash_object.hexdigest()
  hashed_password = buffer
  del new_password, buffer, reentered_password
  new_user[new_user] = hashed_password
  del new_user, hashed_password

' ''

он просто выводит: "new_user [new_user] = hashed_password TypeError: unhashable type: 'dict'' Интервал может быть испорчен, вставив его сюда, вот скриншот оригинального кода: введите описание изображения здесь Спасибо за любую помощь заранее

1 Ответ

0 голосов
/ 12 ноября 2019

Идея словаря заключается в том, что вы связываете значение с ключом, который используете для его поиска, например, как в реальном словаре вы можете найти слово (ключ), чтобы найти его определение (значение).

Вы получили ошибку, которую сделали, потому что пытались использовать весь словарь в качестве ключа для поиска чего-либо в нем;это не имеет смысла и, следовательно, не работает. Вы, вероятно, захотите сделать что-то более похожее на:

new_user["password"] = hashed_password

Не совсем очевидно, для чего это полезно, но если все, что вы пытаетесь сделать, это «сохранить строку в словаре», то это квалифицируется как.

...