• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Хеширование пароля на Python

Max Rudenko

New member
13.02.2021
3
0
BIT
0
Добрый день, Друзья!
Изучаю тему хеширования пароля, столкнулся с проблемой, не могу отладить код, может кто поможет? Подскажите что не учел?
Python:
import hashlib
import os


def salted_password(password, salt):
    password = 'Password Chosen By User'
    salt = os.urandom(32).hex()
    s_password = hashlib.sha256(password.encode() + salt.encode())
    s_password.hexdigest()
    return salted_password(password, salt)
 
Решение
Этот вариант пробовал, намекает что код хорош, но есть более простой вариант.

Совсем туплю(((
Если я правильно понял. А вообще, опиши полное ТЗ того, что должно получиться.

Python:
import hashlib
import os


def salted_password(password, salt):
    s_password = hashlib.sha256(password.encode() + salt.encode())
    return s_password.hexdigest()


password = input('Password Chosen By User: ')
salt = os.urandom(32).hex()

print(salted_password(password, salt))

Wenzel

Green Team
10.08.2020
194
74
BIT
8
У вас функция принимает 2 аргумента, после этого они жестко забиты в коде. Возвращает функция вызов себя...
Python:
import hashlib
import os


def salted_password():
    password = 'Password Chosen By User'
    salt = os.urandom(32).hex()
    s_password = hashlib.sha256(password.encode() + salt.encode())
    s_password.hexdigest()
    return s_password
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Простое понятное решение:


Python:
import hashlib
import os


def salted_password():
    password = input('Password Chosen By User: ')
    salt = os.urandom(32).hex()
    s_password = hashlib.sha256(password.encode('utf-8') + salt.encode('utf-8')).hexdigest()
    print(s_password)


salted_password()
 

Max Rudenko

New member
13.02.2021
3
0
BIT
0
У вас функция принимает 2 аргумента, после этого они жестко забиты в коде. Возвращает функция вызов себя...
Python:
import hashlib
import os


def salted_password():
    password = 'Password Chosen By User'
    salt = os.urandom(32).hex()
    s_password = hashlib.sha256(password.encode() + salt.encode())
    s_password.hexdigest()
    return s_password
Вот и я так думал, а оно пишет: Test Failed: salted_password() takes 0 positional arguments but 2 were given
Поэтому ставил жестко((

Простое понятное решение:


Python:
import hashlib
import os


def salted_password():
    password = input('Password Chosen By User: ')
    salt = os.urandom(32).hex()
    s_password = hashlib.sha256(password.encode('utf-8') + salt.encode('utf-8')).hexdigest()
    print(s_password)


salted_password()
Этот вариант пробовал, намекает что код хорош, но есть более простой вариант.
You need to match up the signature of the function like the documentation: def salted_password(password, salt)

Your current version is trying to call a method urandom on the first parameter that is a string. That function does not exist on strings
Совсем туплю(((
 

Pernat1y

Well-known member
05.04.2018
1 443
135
BIT
0
Этот вариант пробовал, намекает что код хорош, но есть более простой вариант.

Совсем туплю(((
Если я правильно понял. А вообще, опиши полное ТЗ того, что должно получиться.

Python:
import hashlib
import os


def salted_password(password, salt):
    s_password = hashlib.sha256(password.encode() + salt.encode())
    return s_password.hexdigest()


password = input('Password Chosen By User: ')
salt = os.urandom(32).hex()

print(salted_password(password, salt))
 
Решение

Max Rudenko

New member
13.02.2021
3
0
BIT
0
import hashlib import os def salted_password(password, salt): s_password = hashlib.sha256(password.encode() + salt.encode()) return s_password.hexdigest() password = input('Password Chosen By User: ') salt = os.urandom(32).hex() print(salted_password(password, salt))
ДА это то решение, только мне нужно только вернуть ее))
низкий поклон!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!