fix: 修复反代检测对抗的 3 个问题

- computeFingerprint 使用 rune 索引替代字节索引,修复多字节字符指纹不匹配
- utls Chrome TLS 指纹仅对 Anthropic 官方域名生效,自定义 base_url 走标准 transport
- IPv6 地址使用 net.JoinHostPort 正确拼接端口
This commit is contained in:
pzy
2026-04-02 19:12:55 +08:00
parent 249f969110
commit bb44671845
2 changed files with 22 additions and 15 deletions

View File

@@ -1200,15 +1200,16 @@ const fingerprintSalt = "59cf53e54c78"
// Algorithm: SHA256(salt + messageText[4] + messageText[7] + messageText[20] + version)[:3]
func computeFingerprint(messageText, version string) string {
indices := [3]int{4, 7, 20}
var chars [3]byte
for i, idx := range indices {
if idx < len(messageText) {
chars[i] = messageText[idx]
runes := []rune(messageText)
var sb strings.Builder
for _, idx := range indices {
if idx < len(runes) {
sb.WriteRune(runes[idx])
} else {
chars[i] = '0'
sb.WriteRune('0')
}
}
input := fingerprintSalt + string(chars[:]) + version
input := fingerprintSalt + sb.String() + version
h := sha256.Sum256([]byte(input))
return hex.EncodeToString(h[:])[:3]
}