В версии MySQl 8 была удалена функция ENCRYPT
Теперь можно использовать AES.
Примеры:
CREATE TABLE `Users` (
`UserId` INT NOT NULL AUTO_INCREMENT,
`DomainId` INT NOT NULL,
`password` varbinary(50) NOT NULL,
`Email` VARCHAR(100) NOT NULL,
PRIMARY KEY (`UserId`),
UNIQUE KEY `Email` (`Email`),
FOREIGN KEY (DomainId) REFERENCES Domains(DomainId) ON DELETE CASCADE
) ENGINE = InnoDB;
Обратите внимание на тип поля
'password'
. С другими типами добавить закодированные данные у меня не получалось.
INSERT INTO Users (DomainId, password, Email) VALUES (1, (AES_ENCRYPT('your_password', 'your_key')), 'test@email.ru');
где:
your_password - ваш пароль
your_key - ключ для расшифровки пароля
select DomainId, cast(aes_decrypt(encrypted_password,'your_key') as char(50)) from Users;