{
  "slug": "ja4-server-fingerprint",
  "name": "gizza-ai/ja4-server-fingerprint",
  "version": "0.1.0",
  "title": "JA4S Fingerprint Calculator — compute the JA4S TLS server hash from a ServerHello — gizza.ai",
  "description": "Compute a JA4S server fingerprint from a TLS ServerHello in hex — the JA4+ server hash of version, ALPN, cipher, and extensions. Nothing is uploaded.",
  "tags": [
    "ja4s fingerprint",
    "ja4s calculator",
    "ja4 server fingerprint",
    "ja4+ tls",
    "serverhello fingerprint",
    "tls server fingerprint",
    "ja4s hash",
    "foxio ja4",
    "tls fingerprinting",
    "threat intelligence"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/ja4-server-fingerprint/",
    "markdown": "https://gizza.ai/tools/ja4-server-fingerprint/index.md",
    "descriptor": "https://gizza.ai/tools/ja4-server-fingerprint/tool.json",
    "deep_link_example": "https://gizza.ai/tools/ja4-server-fingerprint/?server_hello=16%2003%2003%20...%20%28a%20TLS%20record%20begins%20with%2016%2003%3B%20a%20ServerHello%20handshake%20with%2002%29&quic=true"
  },
  "cli": "gizza tool ja4-server-fingerprint \"16 03 03 ... (a TLS record begins with 16 03; a ServerHello handshake with 02)\"",
  "tool": {
    "description": "Compute the JA4S TLS server fingerprint from a raw ServerHello given as a hex string. Returns the JA4S string (transport + version + extension count + ALPN, the chosen cipher, and a truncated SHA256 of the extension list), the raw JA4S_r variant, the negotiated TLS version, the cipher, the extension list, and the selected ALPN protocol.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "quic": {
          "default": false,
          "type": "boolean"
        },
        "server_hello": {
          "type": "string"
        }
      },
      "required": [
        "server_hello"
      ],
      "type": "object"
    }
  }
}