Как правильно шифровать данные с паролем в MySQL? MD5
Знаю, что в бд хранятся пароли, зашифрованные с помощью MD5. Можно ли установить эту функцию колонке таблицы( то есть при INSERT INTO table (password) VALUES ('123') в таблице автоматически будет записано хэшированное значение)? Если да, то как это сделать? Или при вставке данных необходимо каждый раз использовать хэш-функцию?
Ответы (1 шт):
Автор решения: Сергей Коновалов
→ Ссылка
INSERT INTO table (password) VALUES (MD5('123')) - самое оптимальное.
Автоматически можно через триггер, но ИМХО я бы сказал, что это слишком сложно для подобного случая.
CREATE TRIGGER `db_table_password` BEFORE INSERT ON `db`.`table`
FOR EACH ROW
BEGIN
SET NEW.password = md5(NEW.password );
END
И лучше юзать SHA2, он безопасней https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_sha2