Gryphon.Scan a zip for secrets before you send it

Drop the .zip you were about to attach to that email. Gryphon lists what is actually inside it and flags what should never have been in there: .env files, private keys, a whole .git directory, AWS credentials, live API keys sitting in source, and the 40,000 files of node_modules you didn't mean to send.

GitGuardian's State of Secrets Sprawl 2026: 28.65 million hardcoded secrets were pushed to public GitHub in 2025, up 34% year on year; AI-service keys rose 81% to 1.28 million; and 64% of the secrets leaked in 2022 were still valid in January 2026. Critically, 28% of leaks originate entirely outside repositories: in Slack, Jira, Confluence and email attachments, and those are 13 percentage points more likely to be rated critical. Every other scanner is a git hook or a CI step, so more than a quarter of leaks happen exactly where nothing is watching: the archive you just attached.

Runs entirely in your browser: nothing is uploaded

Drop a .zip here

…or a folder, or a pile of files. Nothing is uploaded: the archive is unpacked in this tab.

Accepts .zip (and .jar/.war/.apk: anything with a zip container), a folder, or loose files.
What Gryphon looks for, and what it deliberately does not show you

We never print a live credential back to the screen. Every secret we find is shown as its first six characters and nothing else. The whole point of this tool is to stop a key travelling somewhere it shouldn't; rendering it into a page you might screenshot would be a strange way to do that. Everything stays in this tab: there is no upload, no telemetry, no server.

Dangerous by path: .env and its variants, the .git directory (its config leaks remote URLs and any token baked into them; packed refs and objects leak your whole history), id_rsa / id_ed25519 and any private key, .pem / .p12 / .pfx / .keystore / .jks, .aws/credentials, .ssh/, .npmrc / .pypirc / .netrc, terraform.tfstate (plaintext secrets by design), databases, .DS_Store and Thumbs.db (they leak folder structure and filenames you deleted), .bak / .old / .orig, and IDE folders.

Secrets inside text: PEM private key blocks, JWTs, Bearer tokens, and provider-prefixed keys: OpenAI/Anthropic sk-, Stripe sk_live_/rk_live_, GitHub ghp_/github_pat_, AWS AKIA/ASIA, Google AIza, Slack xoxb-, SendGrid SG., HuggingFace hf_, GitLab glpat-, npm npm_, Shopify shpat_, DigitalOcean dop_v1_, plus database URLs with an inline password and *_API_KEY = <long high-entropy string> assignments.

An entropy fallback catches unknown secrets: 28+ characters, Shannon entropy above 3.6, letters and digits mixed. It is deliberately ranked below the prefixed matches and suppressed inside lockfiles, minified bundles and hex digests, because that rule is the one that false-positives on hashes.

What it can't see: nested archives (a zip inside your zip is not opened), encrypted archives (we tell you rather than reporting "clean"), binary formats, and files past the scanning caps, which are always reported to you, never applied silently. A clean result means "nothing found in what was scanned", and the coverage box tells you exactly what that was.