Paste text or load a text file to review possible exposures. Pattern matches need investigation and do not establish whether a credential is active.
Runs locally in your browserPattern matching helps find likely exposure. It cannot prove that a value is valid, active, or harmful.
Use this local scanner to surface likely credentials and personal data in a pasted snippet. It redacts evidence in the report; use redacted test data whenever possible.
Paste the text or load a file and press Scan locally. Every match is listed with its line number and a redacted excerpt, and the four counters above the list summarise what was found. Nothing is uploaded: the scan runs in this browser.
The rules cover private key headers, AWS, GitHub, GitLab, Slack, npm, SendGrid, Google, OpenAI, Stripe and Azure credentials, JWTs, bearer tokens, database URLs that carry a password, keyword assignments such as PASSWORD=… or {"api_key": "…"}, e-mail addresses, IPv4 addresses and TODO or FIXME notes.
The scanner looks for the shapes that leak most often: -----BEGIN … PRIVATE KEY----- headers (RSA, EC, OpenSSH and PGP), AWS access key IDs, GitHub, GitLab, Slack, npm and SendGrid tokens, Google API keys, Stripe live secret keys, Azure storage account keys, JWTs, bearer tokens, database URLs that carry a password, and KEY=VALUE lines whose name contains TOKEN, SECRET, PASSWORD or API_KEY — including JSON-quoted keys such as {"password": "…"}, .env lines and semicolon-separated connection strings.
It is a pattern matcher, not a validator. A match does not prove that a credential is live or that a file is safe: the key may already be revoked, and a secret that is base64-encoded, split across lines or assembled at runtime will not be recognised. Treat the report as a list of things to check, and keep a repository-wide scanner in CI.
Values that only stand in for a secret are left alone: your-key, example-token, ${API_KEY}, <your-key>, changeme, •••• and xxxx. A dotted quad that belongs to a version (version = "1.2.3.4", awscli==1.2.3.4) is not reported as an address either.
Only public IPv4 addresses count as personal data. Private, reserved and documentation ranges — 10/8, 172.16/12, 192.168/16, 169.254/16, 127/8, 192.0.2/24, 198.51.100/24 and 203.0.113/24 — still appear in the list, but as notes: a LAN address in a log is rarely the finding you were looking for.
Evidence is cut down to the first four and last three characters (sk_l••••ced), so the report can be pasted into a ticket without repeating the secret. The full value never leaves the tab and is not stored.
Each finding keeps the line it came from; identical matches on one line are collapsed, while the same value on two lines is reported twice. Listing stops after 250 findings so that a very large log cannot freeze the page.