dvc890's picture
Upload 42 files
581b6d4 verified
// https://github.com/fingerprintjs/fingerprintjs/blob/master/src/utils/hashing.ts
package funcaptcha
import (
"fmt"
"sort"
"strings"
)
//goland:noinspection SpellCheckingInspection
func getWindowHash() string { // return aA(b1[df(f_a_hT.e)]()[df(f_a_hT.f)]('|'), 0x1a4);
// Object.getOwnPropertyNames(window);
b1 := []string{
"ALFCCJS",
"AbortController",
"AbortSignal",
"AbsoluteOrientationSensor",
"AbstractRange",
"Accelerometer",
"AggregateError",
"AnalyserNode",
"Animation",
"AnimationEffect",
"AnimationEvent",
"AnimationPlaybackEvent",
"AnimationTimeline",
"ArkoseEnforcement",
"Array",
"ArrayBuffer",
"Atomics",
"Attr",
"Audio",
"AudioBuffer",
"AudioBufferSourceNode",
"AudioContext",
"AudioData",
"AudioDecoder",
"AudioDestinationNode",
"AudioEncoder",
"AudioListener",
"AudioNode",
"AudioParam",
"AudioParamMap",
"AudioProcessingEvent",
"AudioScheduledSourceNode",
"AudioSinkInfo",
"AudioWorklet",
"AudioWorkletNode",
"AuthenticatorAssertionResponse",
"AuthenticatorAttestationResponse",
"AuthenticatorResponse",
"BackgroundFetchManager",
"BackgroundFetchRecord",
"BackgroundFetchRegistration",
"BarProp",
"BaseAudioContext",
"BatteryManager",
"BeforeInstallPromptEvent",
"BeforeUnloadEvent",
"BigInt",
"BigInt64Array",
"BigUint64Array",
"BiquadFilterNode",
"Blob",
"BlobEvent",
"Boolean",
"BroadcastChannel",
"BrowserCaptureMediaStreamTrack",
"ByteLengthQueuingStrategy",
"CDATASection",
"CSS",
"CSSAnimation",
"CSSConditionRule",
"CSSContainerRule",
"CSSCounterStyleRule",
"CSSFontFaceRule",
"CSSFontPaletteValuesRule",
"CSSGroupingRule",
"CSSImageValue",
"CSSImportRule",
"CSSKeyframeRule",
"CSSKeyframesRule",
"CSSKeywordValue",
"CSSLayerBlockRule",
"CSSLayerStatementRule",
"CSSMathClamp",
"CSSMathInvert",
"CSSMathMax",
"CSSMathMin",
"CSSMathNegate",
"CSSMathProduct",
"CSSMathSum",
"CSSMathValue",
"CSSMatrixComponent",
"CSSMediaRule",
"CSSNamespaceRule",
"CSSNumericArray",
"CSSNumericValue",
"CSSPageRule",
"CSSPerspective",
"CSSPositionValue",
"CSSPropertyRule",
"CSSRotate",
"CSSRule",
"CSSRuleList",
"CSSScale",
"CSSSkew",
"CSSSkewX",
"CSSSkewY",
"CSSStyleDeclaration",
"CSSStyleRule",
"CSSStyleSheet",
"CSSStyleValue",
"CSSSupportsRule",
"CSSTransformComponent",
"CSSTransformValue",
"CSSTransition",
"CSSTranslate",
"CSSUnitValue",
"CSSUnparsedValue",
"CSSVariableReferenceValue",
"Cache",
"CacheStorage",
"CanvasCaptureMediaStreamTrack",
"CanvasGradient",
"CanvasPattern",
"CanvasRenderingContext2D",
"CaptureController",
"ChannelMergerNode",
"ChannelSplitterNode",
"CharacterData",
"Clipboard",
"ClipboardEvent",
"ClipboardItem",
"CloseEvent",
"Comment",
"CompositionEvent",
"CompressionStream",
"ConstantSourceNode",
"ContentVisibilityAutoStateChangeEvent",
"ConvolverNode",
"CookieChangeEvent",
"CookieStore",
"CookieStoreManager",
"CountQueuingStrategy",
"Credential",
"CredentialsContainer",
"CropTarget",
"Crypto",
"CryptoKey",
"CustomElementRegistry",
"CustomEvent",
"CustomStateSet",
"DOMError",
"DOMException",
"DOMImplementation",
"DOMMatrix",
"DOMMatrixReadOnly",
"DOMParser",
"DOMPoint",
"DOMPointReadOnly",
"DOMQuad",
"DOMRect",
"DOMRectList",
"DOMRectReadOnly",
"DOMStringList",
"DOMStringMap",
"DOMTokenList",
"DataTransfer",
"DataTransferItem",
"DataTransferItemList",
"DataView",
"Date",
"DecompressionStream",
"DelayNode",
"DelegatedInkTrailPresenter",
"DeviceMotionEvent",
"DeviceMotionEventAcceleration",
"DeviceMotionEventRotationRate",
"DeviceOrientationEvent",
"Document",
"DocumentFragment",
"DocumentTimeline",
"DocumentType",
"DragEvent",
"DynamicsCompressorNode",
"Element",
"ElementInternals",
"EncodedAudioChunk",
"EncodedVideoChunk",
"Error",
"ErrorEvent",
"EvalError",
"Event",
"EventCounts",
"EventSource",
"EventTarget",
"External",
"EyeDropper",
"FeaturePolicy",
"FederatedCredential",
"File",
"FileList",
"FileReader",
"FileSystemDirectoryHandle",
"FileSystemFileHandle",
"FileSystemHandle",
"FileSystemWritableFileStream",
"FinalizationRegistry",
"Float32Array",
"Float64Array",
"FocusEvent",
"FontData",
"FontFace",
"FontFaceSetLoadEvent",
"FormData",
"FormDataEvent",
"FragmentDirective",
"FunCaptcha",
"Function",
"GPU",
"GPUAdapter",
"GPUAdapterInfo",
"GPUBindGroup",
"GPUBindGroupLayout",
"GPUBuffer",
"GPUBufferUsage",
"GPUCanvasContext",
"GPUColorWrite",
"GPUCommandBuffer",
"GPUCommandEncoder",
"GPUCompilationInfo",
"GPUCompilationMessage",
"GPUComputePassEncoder",
"GPUComputePipeline",
"GPUDevice",
"GPUDeviceLostInfo",
"GPUError",
"GPUExternalTexture",
"GPUInternalError",
"GPUMapMode",
"GPUOutOfMemoryError",
"GPUPipelineError",
"GPUPipelineLayout",
"GPUQuerySet",
"GPUQueue",
"GPURenderBundle",
"GPURenderBundleEncoder",
"GPURenderPassEncoder",
"GPURenderPipeline",
"GPUSampler",
"GPUShaderModule",
"GPUShaderStage",
"GPUSupportedFeatures",
"GPUSupportedLimits",
"GPUTexture",
"GPUTextureUsage",
"GPUTextureView",
"GPUUncapturedErrorEvent",
"GPUValidationError",
"GainNode",
"Gamepad",
"GamepadButton",
"GamepadEvent",
"GamepadHapticActuator",
"Geolocation",
"GeolocationCoordinates",
"GeolocationPosition",
"GeolocationPositionError",
"GravitySensor",
"Gyroscope",
"HID",
"HIDConnectionEvent",
"HIDDevice",
"HIDInputReportEvent",
"HTMLAllCollection",
"HTMLAnchorElement",
"HTMLAreaElement",
"HTMLAudioElement",
"HTMLBRElement",
"HTMLBaseElement",
"HTMLBodyElement",
"HTMLButtonElement",
"HTMLCanvasElement",
"HTMLCollection",
"HTMLDListElement",
"HTMLDataElement",
"HTMLDataListElement",
"HTMLDetailsElement",
"HTMLDialogElement",
"HTMLDirectoryElement",
"HTMLDivElement",
"HTMLDocument",
"HTMLElement",
"HTMLEmbedElement",
"HTMLFieldSetElement",
"HTMLFontElement",
"HTMLFormControlsCollection",
"HTMLFormElement",
"HTMLFrameElement",
"HTMLFrameSetElement",
"HTMLHRElement",
"HTMLHeadElement",
"HTMLHeadingElement",
"HTMLHtmlElement",
"HTMLIFrameElement",
"HTMLImageElement",
"HTMLInputElement",
"HTMLLIElement",
"HTMLLabelElement",
"HTMLLegendElement",
"HTMLLinkElement",
"HTMLMapElement",
"HTMLMarqueeElement",
"HTMLMediaElement",
"HTMLMenuElement",
"HTMLMetaElement",
"HTMLMeterElement",
"HTMLModElement",
"HTMLOListElement",
"HTMLObjectElement",
"HTMLOptGroupElement",
"HTMLOptionElement",
"HTMLOptionsCollection",
"HTMLOutputElement",
"HTMLParagraphElement",
"HTMLParamElement",
"HTMLPictureElement",
"HTMLPreElement",
"HTMLProgressElement",
"HTMLQuoteElement",
"HTMLScriptElement",
"HTMLSelectElement",
"HTMLSlotElement",
"HTMLSourceElement",
"HTMLSpanElement",
"HTMLStyleElement",
"HTMLTableCaptionElement",
"HTMLTableCellElement",
"HTMLTableColElement",
"HTMLTableElement",
"HTMLTableRowElement",
"HTMLTableSectionElement",
"HTMLTemplateElement",
"HTMLTextAreaElement",
"HTMLTimeElement",
"HTMLTitleElement",
"HTMLTrackElement",
"HTMLUListElement",
"HTMLUnknownElement",
"HTMLVideoElement",
"HashChangeEvent",
"Headers",
"Highlight",
"HighlightRegistry",
"History",
"IDBCursor",
"IDBCursorWithValue",
"IDBDatabase",
"IDBFactory",
"IDBIndex",
"IDBKeyRange",
"IDBObjectStore",
"IDBOpenDBRequest",
"IDBRequest",
"IDBTransaction",
"IDBVersionChangeEvent",
"IIRFilterNode",
"IdentityCredential",
"IdleDeadline",
"IdleDetector",
"Image",
"ImageBitmap",
"ImageBitmapRenderingContext",
"ImageCapture",
"ImageData",
"ImageDecoder",
"ImageTrack",
"ImageTrackList",
"Infinity",
"Ink",
"InputDeviceCapabilities",
"InputDeviceInfo",
"InputEvent",
"Int16Array",
"Int32Array",
"Int8Array",
"IntersectionObserver",
"IntersectionObserverEntry",
"Intl",
"JSON",
"Keyboard",
"KeyboardEvent",
"KeyboardLayoutMap",
"KeyframeEffect",
"LargestContentfulPaint",
"LaunchParams",
"LaunchQueue",
"LayoutShift",
"LayoutShiftAttribution",
"LinearAccelerationSensor",
"Location",
"Lock",
"LockManager",
"MIDIAccess",
"MIDIConnectionEvent",
"MIDIInput",
"MIDIInputMap",
"MIDIMessageEvent",
"MIDIOutput",
"MIDIOutputMap",
"MIDIPort",
"Map",
"Math",
"MathMLElement",
"MediaCapabilities",
"MediaDeviceInfo",
"MediaDevices",
"MediaElementAudioSourceNode",
"MediaEncryptedEvent",
"MediaError",
"MediaKeyMessageEvent",
"MediaKeySession",
"MediaKeyStatusMap",
"MediaKeySystemAccess",
"MediaKeys",
"MediaList",
"MediaMetadata",
"MediaQueryList",
"MediaQueryListEvent",
"MediaRecorder",
"MediaSession",
"MediaSource",
"MediaSourceHandle",
"MediaStream",
"MediaStreamAudioDestinationNode",
"MediaStreamAudioSourceNode",
"MediaStreamEvent",
"MediaStreamTrack",
"MediaStreamTrackEvent",
"MediaStreamTrackGenerator",
"MediaStreamTrackProcessor",
"MessageChannel",
"MessageEvent",
"MessagePort",
"MimeType",
"MimeTypeArray",
"MouseEvent",
"MutationEvent",
"MutationObserver",
"MutationRecord",
"NaN",
"NamedNodeMap",
"NavigateEvent",
"Navigation",
"NavigationCurrentEntryChangeEvent",
"NavigationDestination",
"NavigationHistoryEntry",
"NavigationPreloadManager",
"NavigationTransition",
"Navigator",
"NavigatorManagedData",
"NavigatorUAData",
"NetworkInformation",
"Node",
"NodeFilter",
"NodeIterator",
"NodeList",
"Notification",
"Number",
"OTPCredential",
"Object",
"OfflineAudioCompletionEvent",
"OfflineAudioContext",
"OffscreenCanvas",
"OffscreenCanvasRenderingContext2D",
"Option",
"OrientationSensor",
"OscillatorNode",
"OverconstrainedError",
"PageTransitionEvent",
"PannerNode",
"PasswordCredential",
"Path2D",
"PaymentAddress",
"PaymentManager",
"PaymentMethodChangeEvent",
"PaymentRequest",
"PaymentRequestUpdateEvent",
"PaymentResponse",
"Performance",
"PerformanceElementTiming",
"PerformanceEntry",
"PerformanceEventTiming",
"PerformanceLongTaskTiming",
"PerformanceMark",
"PerformanceMeasure",
"PerformanceNavigation",
"PerformanceNavigationTiming",
"PerformanceObserver",
"PerformanceObserverEntryList",
"PerformancePaintTiming",
"PerformanceResourceTiming",
"PerformanceServerTiming",
"PerformanceTiming",
"PeriodicSyncManager",
"PeriodicWave",
"PermissionStatus",
"Permissions",
"PictureInPictureEvent",
"PictureInPictureWindow",
"Plugin",
"PluginArray",
"PointerEvent",
"PopStateEvent",
"Presentation",
"PresentationAvailability",
"PresentationConnection",
"PresentationConnectionAvailableEvent",
"PresentationConnectionCloseEvent",
"PresentationConnectionList",
"PresentationReceiver",
"PresentationRequest",
"ProcessingInstruction",
"Profiler",
"ProgressEvent",
"Promise",
"PromiseRejectionEvent",
"Proxy",
"PublicKeyCredential",
"PushManager",
"PushSubscription",
"PushSubscriptionOptions",
"RTCCertificate",
"RTCDTMFSender",
"RTCDTMFToneChangeEvent",
"RTCDataChannel",
"RTCDataChannelEvent",
"RTCDtlsTransport",
"RTCEncodedAudioFrame",
"RTCEncodedVideoFrame",
"RTCError",
"RTCErrorEvent",
"RTCIceCandidate",
"RTCIceTransport",
"RTCPeerConnection",
"RTCPeerConnectionIceErrorEvent",
"RTCPeerConnectionIceEvent",
"RTCRtpReceiver",
"RTCRtpSender",
"RTCRtpTransceiver",
"RTCSctpTransport",
"RTCSessionDescription",
"RTCStatsReport",
"RTCTrackEvent",
"RadioNodeList",
"Range",
"RangeError",
"ReadableByteStreamController",
"ReadableStream",
"ReadableStreamBYOBReader",
"ReadableStreamBYOBRequest",
"ReadableStreamDefaultController",
"ReadableStreamDefaultReader",
"ReferenceError",
"Reflect",
"RegExp",
"RelativeOrientationSensor",
"RemotePlayback",
"ReportingObserver",
"Request",
"ResizeObserver",
"ResizeObserverEntry",
"ResizeObserverSize",
"Response",
"SVGAElement",
"SVGAngle",
"SVGAnimateElement",
"SVGAnimateMotionElement",
"SVGAnimateTransformElement",
"SVGAnimatedAngle",
"SVGAnimatedBoolean",
"SVGAnimatedEnumeration",
"SVGAnimatedInteger",
"SVGAnimatedLength",
"SVGAnimatedLengthList",
"SVGAnimatedNumber",
"SVGAnimatedNumberList",
"SVGAnimatedPreserveAspectRatio",
"SVGAnimatedRect",
"SVGAnimatedString",
"SVGAnimatedTransformList",
"SVGAnimationElement",
"SVGCircleElement",
"SVGClipPathElement",
"SVGComponentTransferFunctionElement",
"SVGDefsElement",
"SVGDescElement",
"SVGElement",
"SVGEllipseElement",
"SVGFEBlendElement",
"SVGFEColorMatrixElement",
"SVGFEComponentTransferElement",
"SVGFECompositeElement",
"SVGFEConvolveMatrixElement",
"SVGFEDiffuseLightingElement",
"SVGFEDisplacementMapElement",
"SVGFEDistantLightElement",
"SVGFEDropShadowElement",
"SVGFEFloodElement",
"SVGFEFuncAElement",
"SVGFEFuncBElement",
"SVGFEFuncGElement",
"SVGFEFuncRElement",
"SVGFEGaussianBlurElement",
"SVGFEImageElement",
"SVGFEMergeElement",
"SVGFEMergeNodeElement",
"SVGFEMorphologyElement",
"SVGFEOffsetElement",
"SVGFEPointLightElement",
"SVGFESpecularLightingElement",
"SVGFESpotLightElement",
"SVGFETileElement",
"SVGFETurbulenceElement",
"SVGFilterElement",
"SVGForeignObjectElement",
"SVGGElement",
"SVGGeometryElement",
"SVGGradientElement",
"SVGGraphicsElement",
"SVGImageElement",
"SVGLength",
"SVGLengthList",
"SVGLineElement",
"SVGLinearGradientElement",
"SVGMPathElement",
"SVGMarkerElement",
"SVGMaskElement",
"SVGMatrix",
"SVGMetadataElement",
"SVGNumber",
"SVGNumberList",
"SVGPathElement",
"SVGPatternElement",
"SVGPoint",
"SVGPointList",
"SVGPolygonElement",
"SVGPolylineElement",
"SVGPreserveAspectRatio",
"SVGRadialGradientElement",
"SVGRect",
"SVGRectElement",
"SVGSVGElement",
"SVGScriptElement",
"SVGSetElement",
"SVGStopElement",
"SVGStringList",
"SVGStyleElement",
"SVGSwitchElement",
"SVGSymbolElement",
"SVGTSpanElement",
"SVGTextContentElement",
"SVGTextElement",
"SVGTextPathElement",
"SVGTextPositioningElement",
"SVGTitleElement",
"SVGTransform",
"SVGTransformList",
"SVGUnitTypes",
"SVGUseElement",
"SVGViewElement",
"Sanitizer",
"Scheduler",
"Scheduling",
"Screen",
"ScreenDetailed",
"ScreenDetails",
"ScreenOrientation",
"ScriptProcessorNode",
"SecurityPolicyViolationEvent",
"Selection",
"Sensor",
"SensorErrorEvent",
"Serial",
"SerialPort",
"ServiceWorker",
"ServiceWorkerContainer",
"ServiceWorkerRegistration",
"Set",
"ShadowRoot",
"SharedWorker",
"SourceBuffer",
"SourceBufferList",
"SpeechSynthesisErrorEvent",
"SpeechSynthesisEvent",
"SpeechSynthesisUtterance",
"StaticRange",
"StereoPannerNode",
"Storage",
"StorageEvent",
"StorageManager",
"String",
"StylePropertyMap",
"StylePropertyMapReadOnly",
"StyleSheet",
"StyleSheetList",
"SubmitEvent",
"SubtleCrypto",
"Symbol",
"SyncManager",
"SyntaxError",
"TaskAttributionTiming",
"TaskController",
"TaskPriorityChangeEvent",
"TaskSignal",
"Text",
"TextDecoder",
"TextDecoderStream",
"TextEncoder",
"TextEncoderStream",
"TextEvent",
"TextMetrics",
"TextTrack",
"TextTrackCue",
"TextTrackCueList",
"TextTrackList",
"TimeRanges",
"ToggleEvent",
"Touch",
"TouchEvent",
"TouchList",
"TrackEvent",
"TransformStream",
"TransformStreamDefaultController",
"TransitionEvent",
"TreeWalker",
"TrustedHTML",
"TrustedScript",
"TrustedScriptURL",
"TrustedTypePolicy",
"TrustedTypePolicyFactory",
"TypeError",
"UIEvent",
"URIError",
"URL",
"URLPattern",
"URLSearchParams",
"USB",
"USBAlternateInterface",
"USBConfiguration",
"USBConnectionEvent",
"USBDevice",
"USBEndpoint",
"USBInTransferResult",
"USBInterface",
"USBIsochronousInTransferPacket",
"USBIsochronousInTransferResult",
"USBIsochronousOutTransferPacket",
"USBIsochronousOutTransferResult",
"USBOutTransferResult",
"Uint16Array",
"Uint32Array",
"Uint8Array",
"Uint8ClampedArray",
"UserActivation",
"VTTCue",
"ValidityState",
"VideoColorSpace",
"VideoDecoder",
"VideoEncoder",
"VideoFrame",
"VideoPlaybackQuality",
"ViewTransition",
"VirtualKeyboard",
"VirtualKeyboardGeometryChangeEvent",
"VisualViewport",
"WakeLock",
"WakeLockSentinel",
"WaveShaperNode",
"WeakMap",
"WeakRef",
"WeakSet",
"WebAssembly",
"WebGL2RenderingContext",
"WebGLActiveInfo",
"WebGLBuffer",
"WebGLContextEvent",
"WebGLFramebuffer",
"WebGLProgram",
"WebGLQuery",
"WebGLRenderbuffer",
"WebGLRenderingContext",
"WebGLSampler",
"WebGLShader",
"WebGLShaderPrecisionFormat",
"WebGLSync",
"WebGLTexture",
"WebGLTransformFeedback",
"WebGLUniformLocation",
"WebGLVertexArrayObject",
"WebKitCSSMatrix",
"WebKitMutationObserver",
"WebSocket",
"WebTransport",
"WebTransportBidirectionalStream",
"WebTransportDatagramDuplexStream",
"WebTransportError",
"WheelEvent",
"Window",
"WindowControlsOverlay",
"WindowControlsOverlayGeometryChangeEvent",
"Worker",
"Worklet",
"WritableStream",
"WritableStreamDefaultController",
"WritableStreamDefaultWriter",
"XMLDocument",
"XMLHttpRequest",
"XMLHttpRequestEventTarget",
"XMLHttpRequestUpload",
"XMLSerializer",
"XPathEvaluator",
"XPathExpression",
"XPathResult",
"XRAnchor",
"XRAnchorSet",
"XRBoundedReferenceSpace",
"XRCPUDepthInformation",
"XRCamera",
"XRDOMOverlayState",
"XRDepthInformation",
"XRFrame",
"XRHitTestResult",
"XRHitTestSource",
"XRInputSource",
"XRInputSourceArray",
"XRInputSourceEvent",
"XRInputSourcesChangeEvent",
"XRLayer",
"XRLightEstimate",
"XRLightProbe",
"XRPose",
"XRRay",
"XRReferenceSpace",
"XRReferenceSpaceEvent",
"XRRenderState",
"XRRigidTransform",
"XRSession",
"XRSessionEvent",
"XRSpace",
"XRSystem",
"XRTransientInputHitTestResult",
"XRTransientInputHitTestSource",
"XRView",
"XRViewerPose",
"XRViewport",
"XRWebGLBinding",
"XRWebGLDepthInformation",
"XRWebGLLayer",
"XSLTProcessor",
"__core-js_shared__",
"_countAA",
"ae",
"alert",
"api_target",
"api_target_sri",
"ark",
"async_fingerprints",
"atob",
"blur",
"btoa",
"caches",
"cancelAnimationFrame",
"cancelIdleCallback",
"capiMode",
"capiSettings",
"capiVersion",
"captureEvents",
"cdn",
"chrome",
"clearInterval",
"clearTimeout",
"clientInformation",
"close",
"closed",
"confirm",
"console",
"cookieStore",
"createImageBitmap",
"credentialless",
"crossOriginIsolated",
"crypto",
"customElements",
"decodeURI",
"decodeURIComponent",
"devicePixelRatio",
"doBBBd",
"document",
"encodeURI",
"encodeURIComponent",
"escape",
"eval",
"event",
"extended_fingerprinting_enabled",
"external",
"fc_api_server",
"fc_fp",
"fc_obj",
"fetch",
"find",
"find_onload",
"fingerprinting_enabled",
"focus",
"fp_result",
"frameElement",
"frames",
"getComputedStyle",
"getScreenDetails",
"getSelection",
"get_outer_html",
"get_query_data",
"globalThis",
"history",
"indexedDB",
"innerHeight",
"innerWidth",
"isFinite",
"isNaN",
"isSecureContext",
"launchQueue",
"length",
"loadedWithData",
"localStorage",
"location",
"locationbar",
"log",
"matchMedia",
"menubar",
"moveBy",
"moveTo",
"msie",
"name",
"navigation",
"navigator",
"offscreenBuffering",
"onabort",
"onafterprint",
"onanimationend",
"onanimationiteration",
"onanimationstart",
"onappinstalled",
"onauxclick",
"onbeforeinput",
"onbeforeinstallprompt",
"onbeforematch",
"onbeforeprint",
"onbeforetoggle",
"onbeforeunload",
"onbeforexrselect",
"onblur",
"oncancel",
"oncanplay",
"oncanplaythrough",
"onchange",
"onclick",
"onclose",
"oncontentvisibilityautostatechange",
"oncontextlost",
"oncontextmenu",
"oncontextrestored",
"oncuechange",
"ondblclick",
"ondevicemotion",
"ondeviceorientation",
"ondeviceorientationabsolute",
"ondrag",
"ondragend",
"ondragenter",
"ondragleave",
"ondragover",
"ondragstart",
"ondrop",
"ondurationchange",
"onemptied",
"onended",
"onerror",
"onfocus",
"onformdata",
"ongotpointercapture",
"onhashchange",
"oninput",
"oninvalid",
"onkeydown",
"onkeypress",
"onkeyup",
"onlanguagechange",
"onload",
"onload_retry",
"onloadeddata",
"onloadedmetadata",
"onloadstart",
"onlostpointercapture",
"onmessage",
"onmessageerror",
"onmousedown",
"onmouseenter",
"onmouseleave",
"onmousemove",
"onmouseout",
"onmouseover",
"onmouseup",
"onmousewheel",
"onoffline",
"ononline",
"onpagehide",
"onpageshow",
"onpause",
"onplay",
"onplaying",
"onpointercancel",
"onpointerdown",
"onpointerenter",
"onpointerleave",
"onpointermove",
"onpointerout",
"onpointerover",
"onpointerrawupdate",
"onpointerup",
"onpopstate",
"onprogress",
"onratechange",
"onrejectionhandled",
"onreset",
"onresize",
"onscroll",
"onscrollend",
"onsearch",
"onsecuritypolicyviolation",
"onseeked",
"onseeking",
"onselect",
"onselectionchange",
"onselectstart",
"onslotchange",
"onstalled",
"onstorage",
"onsubmit",
"onsuspend",
"ontimeupdate",
"ontoggle",
"ontransitioncancel",
"ontransitionend",
"ontransitionrun",
"ontransitionstart",
"onunhandledrejection",
"onunload",
"onvolumechange",
"onwaiting",
"onwebkitanimationend",
"onwebkitanimationiteration",
"onwebkitanimationstart",
"onwebkittransitionend",
"onwheel",
"open",
"openDatabase",
"opener",
"origin",
"originAgentCluster",
"outerHeight",
"outerWidth",
"pageXOffset",
"pageYOffset",
"parent",
"parseFloat",
"parseInt",
"performance",
"personalbar",
"postMessage",
"print",
"prompt",
"public_key",
"queryLocalFonts",
"query_data",
"queueMicrotask",
"releaseEvents",
"reportError",
"requestAnimationFrame",
"requestIdleCallback",
"resizeBy",
"resizeTo",
"scheduler",
"screen",
"screenLeft",
"screenTop",
"screenX",
"screenY",
"scroll",
"scrollBy",
"scrollTo",
"scrollX",
"scrollY",
"scrollbars",
"self",
"sessionStorage",
"setAPIInput",
"setInterval",
"setQueryDataInput",
"setTimeout",
"showDirectoryPicker",
"showOpenFilePicker",
"showSaveFilePicker",
"siteData",
"speechSynthesis",
"startArkoseEnforcement",
"status",
"statusbar",
"stop",
"stringifyWithFloat",
"structuredClone",
"styleMedia",
"target",
"toolbar",
"top",
"trustedTypes",
"undefined",
"unescape",
"visualViewport",
"webkitCancelAnimationFrame",
"webkitMediaStream",
"webkitRTCPeerConnection",
"webkitRequestAnimationFrame",
"webkitRequestFileSystem",
"webkitResolveLocalFileSystemURL",
"webkitSpeechGrammar",
"webkitSpeechGrammarList",
"webkitSpeechRecognition",
"webkitSpeechRecognitionError",
"webkitSpeechRecognitionEvent",
"webkitURL",
"window",
}
sort.Strings(b1)
result := strings.Join(b1, "|")
return getMurmur128String(result, 420)
}
func getWindowProtoChainHash() string { // return this[dh(f_a_hU.f)](b0[dh(f_a_hU.g)]('|'), 0x1a4);
// Object.getPrototypeOf(window);
b0 := []string{
"TEMPORARY",
"PERSISTENT",
"constructor",
"addEventListener",
"dispatchEvent",
"removeEventListener",
"constructor",
"constructor",
"__defineGetter__",
"__defineSetter__",
"hasOwnProperty",
"__lookupGetter__",
"__lookupSetter__",
"isPrototypeOf",
"propertyIsEnumerable",
"toString",
"valueOf",
"__proto__",
"toLocaleString",
}
result2 := strings.Join(b0, "|")
return x64hash128(result2, 420)
}
func x64Add(m []uint32, n []uint32) []uint32 {
m = []uint32{m[0] >> 16, m[0] & 0xffff, m[1] >> 16, m[1] & 0xffff}
n = []uint32{n[0] >> 16, n[0] & 0xffff, n[1] >> 16, n[1] & 0xffff}
o := []uint32{0, 0, 0, 0}
o[3] += m[3] + n[3]
o[2] += o[3] >> 16
o[3] &= 0xffff
o[2] += m[2] + n[2]
o[1] += o[2] >> 16
o[2] &= 0xffff
o[1] += m[1] + n[1]
o[0] += o[1] >> 16
o[1] &= 0xffff
o[0] += m[0] + n[0]
o[0] &= 0xffff
return []uint32{(o[0] << 16) | o[1], (o[2] << 16) | o[3]}
}
func x64Multiply(m []uint32, n []uint32) []uint32 {
m = []uint32{m[0] >> 16, m[0] & 0xffff, m[1] >> 16, m[1] & 0xffff}
n = []uint32{n[0] >> 16, n[0] & 0xffff, n[1] >> 16, n[1] & 0xffff}
o := []uint32{0, 0, 0, 0}
o[3] += m[3] * n[3]
o[2] += o[3] >> 16
o[3] &= 0xffff
o[2] += m[2] * n[3]
o[1] += o[2] >> 16
o[2] &= 0xffff
o[2] += m[3] * n[2]
o[1] += o[2] >> 16
o[2] &= 0xffff
o[1] += m[1] * n[3]
o[0] += o[1] >> 16
o[1] &= 0xffff
o[1] += m[2] * n[2]
o[0] += o[1] >> 16
o[1] &= 0xffff
o[1] += m[3] * n[1]
o[0] += o[1] >> 16
o[1] &= 0xffff
o[0] += m[0]*n[3] + m[1]*n[2] + m[2]*n[1] + m[3]*n[0]
o[0] &= 0xffff
return []uint32{(o[0] << 16) | o[1], (o[2] << 16) | o[3]}
}
//goland:noinspection SpellCheckingInspection
func x64Rotl(m []uint32, n uint32) []uint32 {
n %= 64
if n == 32 {
return []uint32{m[1], m[0]}
} else if n < 32 {
return []uint32{(m[0] << n) | (m[1] >> (32 - n)), (m[1] << n) | (m[0] >> (32 - n))}
} else {
n -= 32
return []uint32{(m[1] << n) | (m[0] >> (32 - n)), (m[0] << n) | (m[1] >> (32 - n))}
}
}
func x64LeftShift(m []uint32, n uint32) []uint32 {
n %= 64
if n == 0 {
return m
} else if n < 32 {
return []uint32{(m[0] << n) | (m[1] >> (32 - n)), m[1] << n}
} else {
return []uint32{m[1] << (n - 32), 0}
}
}
func x64Xor(m []uint32, n []uint32) []uint32 {
return []uint32{m[0] ^ n[0], m[1] ^ n[1]}
}
//goland:noinspection SpellCheckingInspection
func x64Fmix(h []uint32) []uint32 {
h = x64Xor(h, []uint32{0, h[0] >> 1})
h = x64Multiply(h, []uint32{0xff51afd7, 0xed558ccd})
h = x64Xor(h, []uint32{0, h[0] >> 1})
h = x64Multiply(h, []uint32{0xc4ceb9fe, 0x1a85ec53})
h = x64Xor(h, []uint32{0, h[0] >> 1})
return h
}
func x64hash128(key string, seed uint32) string {
keyLength := len(key)
remainder := keyLength % 16
bytes := keyLength - remainder
var h1 = []uint32{0, seed}
var h2 = []uint32{0, seed}
var k1 = []uint32{0, 0}
var k2 = []uint32{0, 0}
var c1 = []uint32{0x87c37b91, 0x114253d5}
var c2 = []uint32{0x4cf5ad43, 0x2745937f}
for i := 0; i < bytes; i += 16 {
k1[0] = uint32(key[i+4])&0xff | (uint32(key[i+5])&0xff)<<8 | (uint32(key[i+6])&0xff)<<16 | (uint32(key[i+7])&0xff)<<24
k1[1] = uint32(key[i])&0xff | (uint32(key[i+1])&0xff)<<8 | (uint32(key[i+2])&0xff)<<16 | (uint32(key[i+3])&0xff)<<24
k2[0] = uint32(key[i+12])&0xff | (uint32(key[i+13])&0xff)<<8 | (uint32(key[i+14])&0xff)<<16 | (uint32(key[i+15])&0xff)<<24
k2[1] = uint32(key[i+8])&0xff | (uint32(key[i+9])&0xff)<<8 | (uint32(key[i+10])&0xff)<<16 | (uint32(key[i+11])&0xff)<<24
k1 = x64Multiply(k1, c1)
k1 = x64Rotl(k1, 31)
k1 = x64Multiply(k1, c2)
h1 = x64Xor(h1, k1)
h1 = x64Rotl(h1, 27)
h1 = x64Add(h1, h2)
h1 = x64Add(x64Multiply(h1, []uint32{0, 5}), []uint32{0, 0x52dce729})
k2 = x64Multiply(k2, c2)
k2 = x64Rotl(k2, 33)
k2 = x64Multiply(k2, c1)
h2 = x64Xor(h2, k2)
h2 = x64Rotl(h2, 31)
h2 = x64Add(h2, h1)
h2 = x64Add(x64Multiply(h2, []uint32{0, 5}), []uint32{0, 0x38495ab5})
}
k1 = []uint32{0, 0}
k2 = []uint32{0, 0}
switch remainder {
case 15:
k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+14])}, 48))
fallthrough
case 14:
k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+13])}, 40))
fallthrough
case 13:
k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+12])}, 32))
fallthrough
case 12:
k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+11])}, 24))
fallthrough
case 11:
k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+10])}, 16))
fallthrough
case 10:
k2 = x64Xor(k2, x64LeftShift([]uint32{0, uint32(key[bytes+9])}, 8))
fallthrough
case 9:
k2 = x64Xor(k2, []uint32{0, uint32(key[bytes+8])})
k2 = x64Multiply(k2, c2)
k2 = x64Rotl(k2, 33)
k2 = x64Multiply(k2, c1)
h2 = x64Xor(h2, k2)
fallthrough
case 8:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+7])}, 56))
fallthrough
case 7:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+6])}, 48))
fallthrough
case 6:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+5])}, 40))
fallthrough
case 5:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+4])}, 32))
fallthrough
case 4:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+3])}, 24))
fallthrough
case 3:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+2])}, 16))
fallthrough
case 2:
k1 = x64Xor(k1, x64LeftShift([]uint32{0, uint32(key[bytes+1])}, 8))
fallthrough
case 1:
k1 = x64Xor(k1, []uint32{0, uint32(key[bytes])})
k1 = x64Multiply(k1, c1)
k1 = x64Rotl(k1, 31)
k1 = x64Multiply(k1, c2)
h1 = x64Xor(h1, k1)
}
h1 = x64Xor(h1, []uint32{0, uint32(keyLength)})
h2 = x64Xor(h2, []uint32{0, uint32(keyLength)})
h1 = x64Add(h1, h2)
h2 = x64Add(h2, h1)
h1 = x64Fmix(h1)
h2 = x64Fmix(h2)
h1 = x64Add(h1, h2)
h2 = x64Add(h2, h1)
return fmt.Sprintf("%08x%08x%08x%08x", h1[0], h1[1], h2[0], h2[1])
}
func getCFPHash(cfp string) uint32 {
//'this is the cfp: canvas xxx base64 image'.split('').reduce((b5, b6) => {
// return b5 = (b5 << 5) - b5 + b6.charCodeAt(0), b5 & b5;
//}, 0);
var b5 uint32
for _, b6 := range cfp {
b5 = (b5 << 5) - b5 + uint32(b6)
b5 &= b5
}
return b5
}
func getIfeHash() string {
return x64hash128(strings.Join(getFeList(), ", "), 38)
}