我有一个存储登录数据的 Mysql 数据库。密码和盐保存为 sha512 哈希。现在,如果更改密码列中的值,我想实现一个条件,即盐必须更改,否则 mysql 命令无效。
CREATE TABLE loginData(
id int UNSIGNED SERIAL DEFAULT VALUE,
email varchar(64) NOT NULL,
password binary(64) NOT NULL,
salt binary(64) NOT NULL,
PRIMARY KEY(id))
ENGINE=InnoDB;
现在,我在考虑类似外键的完整性约束,但显然我不应该将密码和盐列连接为外键。有什么方法可以防止在Mysql端只更新密码列 - 所以必须提供新的盐?仅在访问代码的一侧阻止它感觉不完整。