2012-06-13 2 views
1

Я могу вставить строку с помощью кода ниже.Шифрование и дешифрование MD5 в MySQL

USE pmdb; 
INSERT INTO md5_tbl (md5_val, username, password) VALUES(MD5('abcdef'), 'usna', MD5('Aa123456')); 

Как я могу расшифровать или декодировать пароль, когда я выбираю строку, используя поле имени пользователя?

+0

в дополнение к тому, что говорили другие (MD5 не хеширует не шифрование): MD5 поврежден. –

ответ

3

Во-первых, MD5 является хэш-алгоритм = не дешифрования возможно (кроме грубой силы, но ...)

Во-вторых, не следует использовать MD5 для хеширования паролей, он не является безопасным на всех. Вместо этого используйте не менее Семейство SHA + техника под названием «соление».

2

Идея с MD5 заключается в том, что вы еще не расшифровываете ее. Вместо этого зашифруйте пароль, который пользователь предоставляет, и сравните его со значением, хранящимся в вашей таблице.

2

Вы не можете. MD5 не является алгоритмом шифрования, это алгоритм хеширования.

Что вы делаете, что вы хеширования недавно введенный пароль и сравнить его с хэш хранится в базе данных:

select * 
from md5_tbl 
where username = ?username and password = md5(?password) 
2

Радужные таблицы? ;-)

MD5 - односторонний алгоритм хэширования. Он не может быть «расшифрован».

+0

Поездка вниз по месяцам после факта? Мусор ... – tomfanning

2
select * from md5_tbl where username = 'username' AND password = MD5('password') 

Не забывайте дезинформировать ввод, чтобы предотвратить атаки SQL-инъекций.

Если вы хотите отменить MD5, вы не сможете этого сделать. Посмотрите на RSA, если вы хотите зашифровать & что-нибудь расшифровать.

3

MD5 не может расшифровать,

Вы должны искать значение MD5 вашего введенный пароль в базе данных для сравнения.

SELECT * FROM md5_tbl WHERE password = MD5('password') AND username = 'username' 
3

Хеш нельзя отменить. Это не «шифрование». Я предлагаю вам посмотреть here для объяснения разницы между хэшированием и шифрованием.

Это, я полагаю, вы пытаетесь проверить пароль пользователя при входе в систему. Способ, которым это делается с хешами:

  1. Хэш-пароль, введенный пользователем.

  2. Извлечь хешированный пароль из базы данных.

  3. Сравнение хешей (байт за байт) - если они совпадают, пароль верен.

Смежные вопросы