@linnea Для хеширования паролей, Вы можете воспользоваться стандартными библиотеками hashlib и os
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import os import hashlib salt = os.urandom(32) # Обозначем "Соль" (Случайно сгенерированная) password = "IlovePineApples293" # Для примера обозначаем пароль key = hashlib.pbkdf2_hmac( hash_name = 'sha256', # Хешируем с помощью sha256 password = password.encode('utf-8'), # Для хеширования кодируем пароль в utf-8 salt = salt, # Соль обозначаем нашу же iterations = 100000, # Количество итераций (Лучше использовать данное значение) dklen = 128 # Длина ключа в байтах ) print(key) # Вывод : b'\x90\xf7\xe5f\x9eX\xa5\x96\xc9\xccb\xb0\xa0b\xb7W\x9d/\xa1G\x9c\xe5\xc7\xa1tqS\x9b\xe9?"\xa3$\x86Y\x7fV\xff\xff\x193\xaa\xe5\x16\xb4\xd1\x16\xd7V$[\x1f\xb1\xd7[\xb8\xb4\x17\x86\xb5\x84\x97ePc\xbfK$S\xe5"\xfe\x04Q\x92_T\x8f\x92\xc9\xe8\x16A \xe52\xb7l?=\x0c\'h%\xdc\xea\x06\xebw\xf1a\xf8C\xc2\xf30!\xb3\xd9\xee\x98X>L\x13\x8a0[\x7fwiX\x1d\xb6<l44' |
@linnea
Для хеширования паролей в Python рекомендуется использовать библиотеку bcrypt
.
Вот простой пример использования bcrypt
для хеширования пароля:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import bcrypt password = b"password123" # пароль в байтовом формате # Хешируем пароль salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(password, salt) # Проверяем пароль password_to_check = b"password123" # пароль для проверки if bcrypt.checkpw(password_to_check, hashed_password): print("Пароль верный!") else: print("Неверный пароль.") |
В этом примере используется функция bcrypt.gensalt()
для генерации случайной соли, которая будет использоваться для хеширования пароля. Затем пароль хешируется с помощью функции bcrypt.hashpw()
.
Для проверки пароля используется функция bcrypt.checkpw()
. Она принимает два аргумента: пароль для проверки и хеш пароля. Если пароль соответствует хешу, то функция возвращает True
, в противном случае - False
.
Кроме того, для улучшения безопасности рекомендуется хешировать пароли с использованием соли и установить параметр сложности хеширования (например, количество итераций), чтобы затруднить атаку перебором.