feat(dcauth): 移除机器码,改用纯设备码认证
- DCAuth 协议升级到 v2,签名原文只含设备码;客户端 2.0.0,旧版本返回 426 - 删除客户端机器码采集、后端 machine_code_* 字段与日志、后台机器码展示 - 102 迁移在生产执行前直接改为无机器码结构;SQL 守卫仅放行该文件 - Mock 短信不启用每日限额;修复慢电脑首次启动的协议转发竞态 - 新增 macOS DCAuth.app 打包脚本,注册 dcauth:// 协议,浏览器可直接唤起
This commit is contained in:
@@ -2,8 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -15,25 +13,6 @@ func buildDeviceID(publicKey []byte) string {
|
||||
return formatCode("D1", sum[:])
|
||||
}
|
||||
|
||||
func buildMachineCode() (string, error) {
|
||||
components, err := collectHardwareComponents()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
keys := make([]string, 0, len(components))
|
||||
for key := range components {
|
||||
keys = append(keys, key)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
parts := []string{"dcauth.machine.v1"}
|
||||
for _, key := range keys {
|
||||
parts = append(parts, key+"="+components[key])
|
||||
}
|
||||
sum := sha256.Sum256([]byte(strings.Join(parts, "\n")))
|
||||
return formatCode("M1", sum[:]), nil
|
||||
}
|
||||
|
||||
func formatCode(prefix string, data []byte) string {
|
||||
encoded := base32Crockford(data)
|
||||
if len(encoded) > 20 {
|
||||
@@ -68,22 +47,3 @@ func base32Crockford(data []byte) string {
|
||||
}
|
||||
return builder.String()
|
||||
}
|
||||
|
||||
func normalizeComponent(value string) string {
|
||||
normalized := strings.ToUpper(strings.TrimSpace(value))
|
||||
normalized = strings.Join(strings.Fields(normalized), "")
|
||||
switch normalized {
|
||||
case "", "0", "NONE", "N/A", "NA", "UNKNOWN", "DEFAULTSTRING",
|
||||
"TOBEFILLEDBYO.E.M.", "TOBEFILLEDBYOEM", "SYSTEMSERIALNUMBER",
|
||||
"00000000-0000-0000-0000-000000000000":
|
||||
return ""
|
||||
}
|
||||
return normalized
|
||||
}
|
||||
|
||||
func ensureNotEmpty(components map[string]string) error {
|
||||
if len(components) == 0 {
|
||||
return fmt.Errorf("无法读取本机硬件信息,请联系管理员")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user