Analyze character frequency in ciphertext or plain text: case folding, whitespace/punctuation filters, Top-N, bar chart, CSV/JSON export. Free, local processing.
TL;DR: Free online character frequency analyzer with case folding, whitespace/punctuation filters, Top-N, bar chart, and CSV/JSON export. Local processing, no uploads.
For local tools, open DevTools → Network and search your input — it should not appear in requests.
Next steps
Usage Guide
Count occurrences and frequency share for every character, with case folding, whitespace/punctuation filters, Top-N truncation, and CSV/JSON export. It is more than a writing-analysis tool — character frequency differences are the key that breaks classical substitution ciphers, and a first step in identifying an unknown encoding.
1. How to combine the counting options
- Default: fold case and drop whitespace — good for letter/CJK frequency. Turn on case sensitivity or include whitespace when you need A/a or space counts.
- Ignore punctuation: strip Unicode punctuation (commas, periods, quotes, CJK marks, …) — typical for cryptanalysis or “body text only”.
- Top-N: after sorting, show only the first 10/20/50/100 rows; percentages still use the full filtered total as the denominator.
- Export: copy CSV, or download CSV/JSON for spreadsheets, scripts, or notebooks.
2. Breaking substitution ciphers with frequency analysis
Monoalphabetic ciphers (Caesar, Atbash, any permutation table) do not alter frequency structure: the most common ciphertext letter almost certainly maps to the most common plaintext letter. English letter frequency is remarkably stable at ETAOIN SHRDLU (E alone around 12%), so the workflow is: fold case, drop whitespace and punctuation → rank ciphertext frequencies → align the top letters against E/T/A candidates → cross-check with digrams (th, he) and trigrams (the, and) → substitute iteratively until readable. Longer text means stabler statistics; below roughly 100 letters, noise dominates.
3. Frequency fingerprints of Chinese text
Modern Chinese is extremely head-heavy: 的、一、是、了、我、不、在、人、们、有 dominate the top ranks, and the 100 most frequent characters cover over 40% of ordinary text. Comparisons are equally useful: classical versus modern Chinese differ sharply, technical documents show a spike in ASCII symbols, and machine-generated text tends to sit unusually close to uniform — frequency distribution works as auxiliary evidence for style and provenance. On long texts, use Top-N for a quick head view, then export JSON for coverage curves.
4. Reverse use: a health check for your passwords
- If your passwords concentrate on high-frequency characters (keyboard walks like qwerty, birthdays, dictionary words), dictionary and frequency-ordered search shrink the cracking space dramatically.
- Stronger random passwords should look near-uniform in distribution — running your generator output through this tool is a cheap sanity check.
- Caution: pasting real passwords into any online tool is a leak risk. This page computes everything locally, but prefer test samples for passwords.
5. A first step before identifying unknown encodings
Faced with unreadable data, inspect the frequency distribution before guessing: Base64 text collapses to a 64-character mixed-case alphabet; hex text contains only 0-9a-f; binary-to-text artifacts show clear control versus printable layering. The character-set fingerprint from a frequency pass beats eyeballing for both speed and reliability. Keep spaces and punctuation when you need the full fingerprint (include whitespace, leave ignore-punctuation off).
6. Option combo acceptance
Case fold, whitespace, punctuation, and Top-N change the list while percentages use the filtered total. Lock the same switches before exporting CSV/JSON for A/B compares. Drop whitespace/punctuation for cipher work; keep symbols for encoding fingerprints. Prefer test samples over real passwords.
FAQ
Case folding or case-sensitive counting, whitespace inclusion, ignoring Unicode punctuation, Top-N (all / 10 / 20 / 50 / 100), sorting by count or by character, plus copy-as-CSV and CSV/JSON download. Percentages always use the full filtered total as the denominator.
Yes. Paste the ciphertext (or a fragment), disable whitespace, ignore punctuation, fold case, then sort by count — the classic opening move of frequency analysis in cryptography. In English plaintext, letters like E/T/A dominate; weak ciphers such as simple substitution tend to preserve a similar distribution.
No. Top-N only truncates the rows shown; percentages still divide by every character that passed the filters, so a head-only view never inflates the shares.
The longer the text, the steadier the pattern — under roughly 100 letters, noise interferes badly. English letter frequency has long settled around the ETAOIN SHRDLU order, with E alone near 12%. After mapping the top ciphertext letters onto E/T/A candidates, cross-check with bigrams (th, he) and trigrams (the, and), substituting step by step until the text reads.
Modern Chinese is highly concentrated: characters like 的、一、是、了、我 hold the top slots year after year, and the 100 most common characters cover over 40% of ordinary text. Classical and modern Chinese differ visibly, technical docs show a jump in Latin letters and symbols, and machine-generated text tends to be suspiciously uniform — a frequency profile works as auxiliary evidence of style and origin.
Both. A password concentrated on high-frequency characters (keyboard walks, birthdays, common words) has poor randomness, while a well-randomized one should look close to uniform. For mystery data, take a character-set fingerprint first: Base64 collapses to 64 mixed-case characters and hex only contains 0-9a-f. Use test samples instead of real passwords.
Related Tools
Related Articles
Complete Guide to Character Frequency Analysis: From Cryptography to Text Analysis
Deep dive into character frequency statistics and applications—from code breaking to SEO—plus case folding, whitespace/punctuation filters, Top-N, and export workflows.
ASCII vs Unicode vs UTF-8: Character Encoding Finally Explained
ASCII has 128 characters, Unicode covers 140k+, UTF-8 is Unicode's variable-length encoding. Learn the difference, byte vs character length, and why most encoding bugs happen.
Character Encoding Troubleshooting Handbook: Mojibake, URL Encoding, and Base64 Explained
Chinese turning into ??? or é”±? %E4%B8%AD unreadable? This handbook classifies by symptom — real mojibake, URL percent-encoding, Unicode escaping, and Base64 with Chinese, plus an encoding primer and a debugging workflow.