fix(realname): 增加身份证唯一性校验,防止同一证件重复实名
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package crypto
|
||||
|
||||
import (
|
||||
"crypto/hmac"
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// FingerprintHMAC 生成用于唯一性盲索引的稳定 HMAC-SHA256 指纹。
|
||||
// secret 为空时退化为带域前缀的 SHA-256,仅用于本地/测试环境。
|
||||
func FingerprintHMAC(secret, domain, value string) string {
|
||||
payload := strings.TrimSpace(domain) + ":" + strings.TrimSpace(value)
|
||||
if strings.TrimSpace(secret) == "" {
|
||||
sum := sha256.Sum256([]byte(payload))
|
||||
return hex.EncodeToString(sum[:])
|
||||
}
|
||||
mac := hmac.New(sha256.New, []byte(secret))
|
||||
_, _ = mac.Write([]byte(payload))
|
||||
return hex.EncodeToString(mac.Sum(nil))
|
||||
}
|
||||
Reference in New Issue
Block a user