У меня есть программа, в которой пользователи вводят свое username
и password
в 2 поля соответственно. Я храню каждый пароль в виде хэша md5 в таблице MySQL в двух строках соответственно (хотя я знаю, что это не очень безопасно). Вместо того, чтобы хэшировать пароль, когда пользователи его вводят, а затем сравнивая его с базой данных, я делаю следующее:
select * from users
where username = 'value_from_the_username_field' AND
password = 'md5(value_from_the_pass_field)'
Я хотел бы спросить, правда ли, что пароль будет отображаться в обычном тексте через сеть, прежде чем дойти до сервера и выполнить запрос и как это может произойти? (Я не мог понять эту концепцию очень хорошо)
Чтобы сделать это безопасным, вам обязательно нужно соединить хэши паролей, и тогда эта проблема решится сама по себе, потому что база данных не может использовать хэширование.
Вместо этого вам нужно вызвать функцию хэша паролей на вашем языке разработки, например password_hash() для PHP, а затем вставить хэш в базу данных.
md5()
устарел для хэширования паролей и не должен использоваться .