在MSQL数据库中存储加密密码的问题

时间:2019-02-20 08:35:54

标签: mysql sql password-encryption

我的环境:

  • 系统:MacOs 10.17.3 64位
  • 数据库:MySQL 8.0 64位

MySQL设置:

  • system variables:
  • table info:

我的问题:

我尝试使用以下命令将加密的密码插入表中 SQL语句

    INSERT INTO users
    VALUES ('me@example.com', AES_ENCRYPT('my_password',
    UNHEX('F3229A0B371ED2D9441B830D21A390C3')));

我得到以下结果:

  

错误1366(HY000):不正确的字符串值:'\ xE3Hx5d \ xCC ...'   第1行的“密码”列

谁能进一步阐明我如何解决此问题? 感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

您必须将字段名称的字符集设置为:

character set = ascii

collation = ascii_general_ci

类似:

ALTER TABLE yourtablename MODIFY
    fieldname VARCHAR(60) #depends on your designated max value
      CHARACTER SET ascii
      COLLATE ascii_general_ci;