mirror of
https://github.com/lukaszraczylo/mcp-captcharesolver.git
synced 2026-10-20 01:27:53 +00:00
feat(stealth): deterministic coherent fingerprint generator
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package stealth
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestGenerateFingerprintDeterministic(t *testing.T) {
|
||||
a := GenerateFingerprint(FingerprintParams{OS: "windows", Browser: "chrome", Locale: "en-US", Seed: 42})
|
||||
b := GenerateFingerprint(FingerprintParams{OS: "windows", Browser: "chrome", Locale: "en-US", Seed: 42})
|
||||
if a != b {
|
||||
t.Fatalf("same seed must be deterministic:\n%+v\n%+v", a, b)
|
||||
}
|
||||
if a.UserAgent == "" || a.Platform == "" || a.SecCHUA == "" {
|
||||
t.Fatalf("incomplete fingerprint: %+v", a)
|
||||
}
|
||||
// internal consistency: windows UA must mention Windows and platform Win32
|
||||
if a.Platform != "Win32" {
|
||||
t.Fatalf("windows platform=%q", a.Platform)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerateFingerprintVaries(t *testing.T) {
|
||||
a := GenerateFingerprint(FingerprintParams{OS: "windows", Browser: "chrome", Seed: 1})
|
||||
b := GenerateFingerprint(FingerprintParams{OS: "windows", Browser: "chrome", Seed: 2})
|
||||
if a.HardwareConcurrency == b.HardwareConcurrency && a.UserAgent == b.UserAgent && a.Viewport == b.Viewport {
|
||||
t.Fatal("different seeds should vary at least one attribute")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user