fix(realname): 增加身份证唯一性校验,防止同一证件重复实名
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
-- +goose Up
|
||||
|
||||
-- 实名唯一性:同一身份证号最多绑定一个已实名账号。
|
||||
-- encrypted_id_no 使用随机 nonce,同一身份证每次密文不同,不能直接做唯一键;
|
||||
-- 因此新增由明文身份证号 + 服务端密钥计算的 HMAC 指纹,仅认证通过时写入。
|
||||
-- 存量记录先保持 NULL,查询时按 masked_id_no + 解密比对兼容,命中后按需补写。
|
||||
ALTER TABLE user_realname
|
||||
ADD COLUMN id_no_hash CHAR(64) NULL COMMENT '身份证号 HMAC-SHA256 指纹,仅认证通过时写入' AFTER encrypted_id_no,
|
||||
ADD KEY idx_user_realname_masked_id_no (masked_id_no),
|
||||
ADD UNIQUE KEY uk_user_realname_id_no_hash (id_no_hash);
|
||||
|
||||
-- +goose Down
|
||||
|
||||
ALTER TABLE user_realname
|
||||
DROP INDEX uk_user_realname_id_no_hash,
|
||||
DROP INDEX idx_user_realname_masked_id_no,
|
||||
DROP COLUMN id_no_hash;
|
||||
Reference in New Issue
Block a user