Как правильно использовать AES_ENCRYPT?

Я пытаюсь использовать шифрование AES (AES_ENCRYPT в MySQL) для паролей пользователей, но я столкнулся с кучей разных проблем.

Это SQL-запрос, который я использую для хранения нового пользователя в базе данных:

INSERT INTO user VALUES (
    '15',
    'John',
    'Doe',
    '123 Fake St.',
    AES_ENCRYPT('mypassword', 'mysalt'),
    'mysalt'
)

Где соль будет случайной строкой в реальном случае.

Работает нормально. Я имею в виду, я могу восстановить оригинальный пароль. В этом примереAES_DECRYPT(user.password, 'mysalt') WHERE user.id = 15 извлекаетmypassword, Но я мог бы пропустить некоторые вещи.

Безопасно ли сохранять соль вместе с паролем? Помимобезопасность через мрак.

В каком формате лучше хранить хешированный пароль? я использую
VARBINARY, но сохраненная строка выглядит8�p�����_�Z�\.

И наконец, как долго должен быть пароль и как долго соль должна быть?

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос