Přeskočit na obsah

Analýza a vizualizace frekvence znaků

Bezplatný nástroj pro analýzu frekvence znaků. Okamžitě vizualizujte vzory distribuce písmen. Ideální pro kryptografii, kompresi dat, detekci textového kódování a lingvistickou analýzu.

Analýza frekvence znaků

Kalkulačka načítání...
📚

Dokumentace

Co je analýza frekvence znaků?

Přemýšleli jste někdy, které písmena dominují vašemu textu? Analýza frekvence znaků počítá, jak často se každý znak v textu vyskytuje, odhaluje vzory, které nejsou na první pohled zřejmé. Tato technika sahá až do kryptografie 9. století a zůstává i dnes podstatná pro lámání šifer, optimalizaci kompresních algoritmů a studium jazykových vzorů.

Zde je to, co tento nástroj činí užitečným: vložte jakýkoli text - ať už jde o kód, šifrované zprávy nebo běžné dokumenty - a okamžitě uvidíte sloupcový graf zobrazující přesně, které znaky se vyskytují nejčastěji. Shledal jsem to zvláště přínosným při ladění problémů s kódováním textu nebo analýze vzorů šifer v bezpečnostním výzkumu.

Reálné aplikace jsou překvapivě široké. Při práci na projektech datové komprese vám znalost distribuce znaků pomáhá zvolit správný algoritmus. V kryptoanalytické práci mohou neobvyklé frekvenční vzory odhalit slabiny substituční šifry. Dokonce i pro základní úpravy textu může odhalení neočekávaných frekvencí znaků odhalit skryté problémy s formátováním nebo kódováním, které byste při manuální kontrole přehlédli.

Jak funguje analýza četnosti znaků

Základní koncept je jednoduchý: spočítat každý znak a vizualizovat výsledky. Implementace však vyžaduje pečlivou pozornost k efektivitě, zejména při zpracování velkých textových souborů.

Algoritmus sčítání znaků

Zde je postup analýzy textu:

  1. Zpracování textového vstupu: Každý znak je prozkoumán individuálně, včetně mezer, interpunkce a speciálních symbolů.
  2. Počítání znaků: Hashovací mapa sleduje počet každého znaku, který se zvyšuje při každém výskytu znaku.
  3. Výpočet četnosti: Po prohlédnutí celého textu jsou vypočítány procenta vzhledem k celkovému počtu znaků.
  4. Řazení dat: Výsledky jsou seřazeny abecedně nebo podle četnosti - abecední řazení usnadňuje nalezení konkrétních znaků, zatímco řazení podle četnosti zvýrazňuje dominantní vzory.
  5. Vizualizace: Pruhový graf okamžitě zobrazuje výsledky a činí vzory zřetelnými na první pohled.

Matematické vyjádření četnosti znaků lze vyjádřit jako:

f(c)=ncN×100%f(c) = \frac{n_c}{N} \times 100\%

Kde:

  • f(c)f(c) je četnost znaku cc
  • ncn_c je počet výskytů znaku cc
  • NN je celkový počet znaků v textu

Datové struktury a výkon

Hashovací mapa (také nazývaná slovník nebo objekt) poskytuje nejefektivnější způsob počítání výskytů znaků:

11. Inicializovat prázdnou hashovací mapu/slovník
22. Pro každý znak ve vstupním textu:
3   a. Pokud znak existuje v hashovací mapě, zvýšit jeho počet
4   b. Pokud ne, přidat znak do hashovací mapy s počtem 1
53. Převést hashovací mapu na pole párů znak-počet
64. Seřadit pole podle potřeby (abecedně nebo podle četnosti)
75. Vygenerovat vizualizaci na základě seřazeného pole
8

Tento přístup má časovou složitost O(n), kde n odpovídá délce vstupního textu. V praxi to znamená: dokument o 100 000 znacích se zpracovává stejně rychle po znaku jako úryvek o 100 znacích. Konstantní doba vyhledávání v hashovací mapě to umožňuje - každá kontrola znaku trvá stejnou dobu bez ohledu na počet již spočítaných jedinečných znaků.

Je třeba poznamenat jednu omezení: extrémně velké texty (miliony znaků) mohou zpomalit implementace v prohlížeči kvůli paměťovým omezením JavaScriptu. Pro průmyslovou analýzu textu byste typicky použili zpracování na straně serveru s jazyky jako Python nebo Go.

Jak používat tento nástroj pro frekvenci znaků

Začít je otázka několika sekund. Stačí vložit text a sledovat automatickou analýzu.

Zadání textu

Nástroj přijímá cokoliv:

  • Prosté textové dokumenty a články
  • Úryvky kódu (Python, JavaScript, jakýkoli jazyk)
  • Literární pasáže nebo kreativní psaní
  • Šifrované zprávy, které se snažíte rozluštit
  • Cizojazyčné texty (skvělé pro porovnávání jazykových vzorů)
  • Technickou dokumentaci nebo protokoly

Neexistuje praktické omezení délky pro běžné použití—vložte odstavec nebo celou kapitolu.

Analýza v reálném čase

Zde je něco užitečného: nástroj zpracovává váš text při psaní. Žádné tlačítko "Spočítat", žádné čekání. Vložte text a sloupcový graf se okamžitě aktualizuje. To usnadňuje experimentování—vyzkoušejte různé textové vzorky a ihned uvidíte, jak se distribuce znaků mění.

Čtení výsledků

Vizualizace ukazuje tři klíčové věci:

  • Sloupcový graf: Každý sloupec reprezentuje jeden znak. Vyšší sloupce znamenají vyšší frekvenci. Rychle odhalíte, které znaky v textu dominují.
  • Celkový počet znaků: Ukazuje přesně, kolik znaků váš text obsahuje, včetně mezer a interpunkce.
  • Individuální počty: Najeďte na kterýkoli sloupec a uvidíte přesný počet daného znaku.

Na co se zaměřit: V anglickém textu byste normálně očekávali 'E', 'T', 'A', 'O' a 'I' poblíž vrcholu. Pokud uvidíte neobvyklé vzory—jako časté 'Q' nebo 'Z'—může to naznačovat substituční šifru nebo problémy s kódováním.

Kopírování a export

Potřebujete data pro zprávu nebo prezentaci? Klikněte na tlačítko "Kopírovat" a zachyťte formátované výsledky. Můžete je vložit přímo do tabulek, dokumentů nebo kamkoli jinam, kde pracujete. Shledal jsem to zvláště užitečným při dokumentování kryptanalytických zjištění nebo zahrnutí statistických důkazů do technických zápisů.

Reálné případy použití analýzy frekvence znaků

Analýza frekvence znaků se objevuje v překvapivě rozmanitých oborech. Zde jsou místa, kde se skutečně používá:

Kryptografie a prolomení substitučních šifer

Zde analýza frekvence získala svou pověst. Jednoduché substituční šifry - kde každý znak mapuje na jiný znak - zachovávají frekvenční vzory původního jazyka.

Praktický příklad: Analyzujete zašifrovanou zprávu a všimnete si, že jeden symbol se vyskytuje 12,7% času. V angličtině se typicky 'E' vyskytuje kolem 12,7%, takže tento symbol pravděpodobně reprezentuje 'E'. Křížovou referencí s druhým a třetím nejčastějším symbolem (pravděpodobně 'T' s ~9% a 'A' s ~8%) jste dostali první trhlinu do šifry.

Moderní šifrování jako AES-256 nemá tuto slabinu - zamíchá vše tak důkladně, že analýza frekvence neprozradí nic. Ale substituční šifry se stále objevují v hádankách, CTF soutěžích a historických dokumentech.

Algoritmy komprese dat

Huffmanovo kódování a podobné kompresní algoritmy zcela závisí na frekvenci znaků. Koncept: přiřaďte krátké bitové kódy běžným znakům a delší kódy vzácným.

Reálný scénář: Komprimujete soubor protokolu, kde se 'E' vyskytuje 15% času a 'Z' pouze 0,07%. Váš kompresní algoritmus přiřadí 'E' 3bitový kód (000) a 'Z' 11bitový kód. Vynásobte tento rozdíl přes tisíce znaků a dosáhnete 40-60% redukce velikosti souboru bez ztráty dat. Přesně tak fungují soubory ZIP a GZIP pod povrchem.

Lingvistická analýza a detekce autorství

Frekvence znaků funguje jako otisk stylu psaní. Každý autor má tendenci upřednostňovat určité písmena a interpunkční vzory, i nevědomky.

Reálná aplikace: Forenzní lingvisté analyzující případ Unabombera použili analýzu frekvence jako jednu z mnoha technik k identifikaci stylu psaní Theodora Kaczynskeho. Zatímco výběr slov hrál větší roli, vzory na úrovni znaků (jako hustota čárek a struktura vět) přispěly k celkovému jazykovému profilu.

Můžete si to vyzkoušet sami: analyzujte několik odstavců od různých autorů ve stejném žánru. Všimnete si měřitelných rozdílů v hustotě interpunkce, průměrné délce slov (odrážené ve vzorcích znaků) a distribuci písmen.

Detekce kódování textu a přenosových chyb

Když text vypadá zkaženě nebo zobrazuje divné znaky, analýza frekvence pomáhá diagnostikovat problém.

Běžný scénář: Obdržíte soubor, který by měl obsahovat anglický text, ale graf frekvence ukazuje abnormálně vysoký výskyt znaků jako 'Ã' nebo '©'. To okamžitě naznačuje, že text UTF-8 je interpretován jako ISO-8859-1 kódování - častá chyba při přenosu souborů mezi systémy.

Podobně, pokud očekáváte angličtinu, ale vidíte vzory znaků, které neodpovídají (chybějící běžná písmena jako 'E' nebo 'T'), můžete se dívat na zašifrovaná data, binární data špatně interpretovaná jako text nebo zcela jiný jazyk.

Zpracování přirozeného jazyka a detekce jazyka

Systémy NLP používají frekvenci znaků jako rychlý první průchod pro identifikaci jazyka. Různé jazyky mají dramaticky odlišné distribuce znaků.

Jak to funguje v praxi: Angličtina silně používá 'E', 'T', 'A'. Španělština ukazuje vysoké frekvence 'E', 'A', 'O'. Němčina má hodně 'E', 'N' plus diakritická znaménka (ä, ö, ü), která se v angličtině vůbec nevyskytují. Jednoduchá kontrola frekvence může identifikovat jazyk před použitím sofistikovanějších modelů NLP, což šetří výpočetní zdroje.

Učení programování a statistiky

Frekvence znaků je vynikající první projekt pro studenty učící se programovat. Učí základní koncepty bez přílišné složitosti.

Proč to funguje jako výukový nástroj: Studenti procvičují hashovací mapy, smyčky, řadicí algoritmy a vizualizaci dat - všechny základní programovací koncepty. Výsledky jsou okamžitě viditelné a ověřitelné, což usnadňuje ladění. Viděl jsem, že toto bylo úspěšně použito v kurzech CS101 jako první implementace algoritmu z reálného světa.

Kdy použít alternativní metody analýzy textu

Analýza frekvence znaků má své přednosti, ale někdy potřebujete jiný přístup. Zde je přehled dalších existujících metod a jejich vhodnosti:

Analýza frekvence slov

Počítání slov místo znaků odhaluje sémantické vzorce — co text skutečně pojednává, nikoliv jen jeho znakové složení.

Vhodné pro: Analýzu obsahu, SEO výzkum klíčových slov nebo identifikaci tématu. Pokud analyzujete blogové příspěvky za účelem nalezení témat nebo extrakce klíčových slov pro indexaci, analýza frekvence slov vám poskytne smysluplné výsledky, které analýza znaků nemůže postihnout.

Analýza N-gramů

N-gramy zkoumají sekvence znaků nebo slov — bigramy (dvojice písmen), trigramy (trojice písmen) a podobně. To zachycuje kontextové vzorce.

Vhodné pro: Prediktivní textové systémy, funkce automatických oprav a jazykové modelování. Klávesnice vašeho telefonu používá analýzu n-gramů k předpovědi následujícího slova. Ví, že po slově „the" často následuje podstatné jméno, a to nikoliv na základě jednotlivých písmen, ale na základě naučených sekvencí slov.

Analýza sentimentu

Určuje emocionální tón (pozitivní, negativní, neutrální) pomocí technik NLP namísto jednoduchého počítání.

Vhodné pro: Analýzu zákaznických recenzí, monitorování sociálních médií nebo sledování vnímání značky. Pokud potřebujete vědět, zda jsou lidé spokojení nebo nespokojení, analýza sentimentu vám poskytne odpovědi, které analýza frekvence nemůže poskytnout.

Analýza čitelnosti

Metriky jako Flesch-Kincaid Reading Ease nebo SMOG Index měří obtížnost porozumění textu s ohledem na délku vět a složitost slabik.

Vhodné pro: Hodnocení vzdělávacího obsahu, vyhodnocení technické dokumentace nebo zajištění přístupnosti. Před publikováním obsahu pro široké publikum pomohou skóre čitelnosti identifikovat příliš složité pasáže, které by mohly čtenáře zmást.

Historie analýzy četnosti znaků

Tato technika prolomuje kódy již přes tisíc let. Zde je její vývoj:

9. století: První průlom

Arabský polymat Al-Kindi zdokumentoval první známý popis frekvenční analýzy ve svém rukopisu „Rukopis o luštění kryptografických zpráv". Uvědomil si, že určité písmena se v arabském textu vyskytují častěji, a tento vzorec přetrvává i po zašifrování pomocí jednoduchých substitučních šifer. Tento poznatek revolucionalizoval kryptoanalýzu — najednou zašifrované zprávy nebyly tak bezpečné, jak si všichni mysleli.

Renesance: Začíná závodní válka

Do 16. století evropští kryptografové znali frekvenční analýzu a navrhovali šifry speciálně určené k jejímu poražení. Giovanni Battista Bellaso a Blaise de Vigenère vyvinuli polyalfabetické šifry, které měnily substituční vzorec v průběhu celé zprávy, čímž narušily frekvenční vzory. To zahájilo staletí trvající vzájemný boj mezi tvůrci a luštiteli kódů.

Druhá světová válka: Průmyslová kryptoanalýza

Britští kryptologové v Bletchley Park — včetně Alana Turinga a jeho týmu — použili frekvenční analýzu jako jednu ze složek při prolomení německého stroje Enigma. Přestože byl celý proces mnohem složitější, pochopení vzorců četnosti znaků a písmen pomohlo identifikovat cribs (známé fragmenty prostého textu), které mohly odhalit celé zprávy.

Moderní éra: Nad rámec kryptografie

S příchodem počítačů se frekvenční analýza stala automatizovanou a našla nové aplikace. Stejné matematické principy, které lámou kódy, také optimalizují kompresní algoritmy (Huffmanovo kódování, LZ77), identifikují jazyky v systémech NLP a analyzují obrovské textové datové soubory. To, co začalo jako kryptografická technika, se stalo základním nástrojem v teorii informací a informatice.

Příklady kódu

Zde jsou implementace analýzy četnosti znaků v různých programovacích jazycích:

Python

1def analyze_character_frequency(text):
2    # Inicializace prázdného slovníku
3    frequency = {}
4    
5    # Spočítání každého znaku
6    for char in text:
7        if char in frequency:
8            frequency[char] += 1
9        else:
10            frequency[char] = 1
11    
12    # Převedení na seznam n-tic a seřazení abecedně
13    result = sorted(frequency.items())
14    
15    return result
16
17# Příklad použití
18text = "Hello, World!"
19frequencies = analyze_character_frequency(text)
20for char, count in frequencies:
21    print(f"'{char}': {count}")
22

JavaScript

1function analyzeCharacterFrequency(text) {
2  // Inicializace prázdného objektu
3  const frequency = {};
4  
5  // Spočítání každého znaku
6  for (let i = 0; i < text.length; i++) {
7    const char = text[i];
8    if (frequency[char]) {
9      frequency[char]++;
10    } else {
11      frequency[char] = 1;
12    }
13  }
14  
15  // Převedení na pole objektů a seřazení abecedně
16  const result = Object.entries(frequency)
17    .map(([char, count]) => ({ char, count }))
18    .sort((a, b) => a.char.localeCompare(b.char));
19  
20  return result;
21}
22
23// Příklad použití
24const text = "Hello, World!";
25const frequencies = analyzeCharacterFrequency(text);
26frequencies.forEach(item => {
27  console.log(`'${item.char}': ${item.count}`);
28});
29

Java

1import java.util.*;
2
3public class CharacterFrequencyAnalyzer {
4    public static List<Map.Entry<Character, Integer>> analyzeCharacterFrequency(String text) {
5        // Inicializace HashMap
6        Map<Character, Integer> frequency = new HashMap<>();
7        
8        // Spočítání každého znaku
9        for (int i = 0; i < text.length(); i++) {
10            char c = text.charAt(i);
11            frequency.put(c, frequency.getOrDefault(c, 0) + 1);
12        }
13        
14        // Převedení na seznam a seřazení abecedně
15        List<Map.Entry<Character, Integer>> result = new ArrayList<>(frequency.entrySet());
16        result.sort(Map.Entry.comparingByKey());
17        
18        return result;
19    }
20    
21    public static void main(String[] args) {
22        String text = "Hello, World!";
23        List<Map.Entry<Character, Integer>> frequencies = analyzeCharacterFrequency(text);
24        
25        for (Map.Entry<Character, Integer> entry : frequencies) {
26            System.out.println("'" + entry.getKey() + "': " + entry.getValue());
27        }
28    }
29}
30

C++

1#include <iostream>
2#include <string>
3#include <map>
4#include <vector>
5#include <algorithm>
6
7std::vector<std::pair<char, int>> analyzeCharacterFrequency(const std::string& text) {
8    // Inicializace mapy
9    std::map<char, int> frequency;
10    
11    // Spočítání každého znaku
12    for (char c : text) {
13        frequency[c]++;
14    }
15    
16    // Převedení na vektor párů
17    std::vector<std::pair<char, int>> result(frequency.begin(), frequency.end());
18    
19    // Mapa je již seřazena podle klíče (znak)
20    return result;
21}
22
23int main() {
24    std::string text = "Hello, World!";
25    auto frequencies = analyzeCharacterFrequency(text);
26    
27    for (const auto& pair : frequencies) {
28        std::cout << "'" << pair.first << "': " << pair.second << std::endl;
29    }
30    
31    return 0;
32}
33

Ruby

1def analyze_character_frequency(text)
2  # Inicializace prázdného hash
3  frequency = Hash.new(0)
4  
5  # Spočítání každého znaku
6  text.each_char do |char|
7    frequency[char] += 1
8  end
9  
10  # Převedení na pole polí a seřazení abecedně
11  result = frequency.to_a.sort_by { |char, _| char }
12  
13  return result
14end
15
16# Příklad použití
17text = "Hello, World!"
18frequencies = analyze_character_frequency(text)
19frequencies.each do |char, count|
20  puts "'#{char}': #{count}"
21end
22

Často kladené dotazy

K čemu slouží analýza četnosti znaků?

Analýza četnosti znaků počítá, jak často se každý znak v textu vyskytuje. Hlavní použití: prolomení substitučních šifer, optimalizace algoritmů komprese dat (jako jsou soubory ZIP), detekce chyb kódování textu, identifikace jazyků v systémech NLP a analýza vzorů psaní. Jedná se o základní techniku, která je v kryptografii používána již přes 1 000 let.

Kolik textu potřebuji pro přesné výsledky?

Pro typické jazykové vzory potřebujete alespoň několik set znaků - přibližně 2-3 odstavce. Krátké věty neodpovídají očekávaným distribucím četnosti kvůli příliš velké náhodné variaci. Jakmile překročíte 1 000 znaků, vzory se stabilizují a odrážejí skutečný jazyk nebo styl autora. Pro kryptoanalytickou práci je vždy lepší mít více textu - prolomení šifry s 20-znakovým šifrovaným textem je téměř nemožné, ale vzorek 500 znaků poskytuje solidní vzory pro práci.

Může toto prolomit moderní šifrování jako AES nebo HTTPS?

Ne. Analýza četnosti znaků funguje pouze u jednoduchých substitučních šifer, kde se každé písmeno konzistentně mapuje na jiné písmeno nebo symbol. Moderní šifrování (AES-256, RSA, TLS/HTTPS) používá matematické transformace natolik složité, že šifrovaný výstup vypadá zcela náhodně - žádné frekvenční vzory nepřežijí. Pokud by analýza četnosti mohla prolomit HTTPS, online bankovnictví by neexistovalo.

Proč mají různé jazyky odlišné znakové vzory?

Struktura jazyka určuje četnost znaků. Angličtina hodně používá krátká slova jako "the", "and", "for", což zvyšuje frekvenci 'E' a 'T'. Španělština má slova bohatší na samohlásky, takže dominují 'A', 'E', 'O'. Němčina používá složená slova a umlauts (ä, ö, ü), které v angličtině neexistují. Tyto vzory jsou natolik konzistentní, že můžete identifikovat jazyk jen z distribuce četnosti znaků - bez potřeby překladu.

Četnost znaků vs. četnost slov - co mám použít?

Použijte četnost znaků, když: analyzujete šifrovaný text, optimalizujete kompresi, detekujete chyby kódování nebo pracujete s jakýmkoli jazykem (je univerzální). Použijte četnost slov, když: potřebujete sémantický význam - extrakce klíčových slov, analýza obsahu, SEO optimalizace nebo pochopení toho, o čem text pojednává. Analýza znaků je na nižší úrovni a nezávislá na jazyce; analýza slov je na vyšší úrovni a zaměřená na význam.

Jak kompresní algoritmy využívají četnost znaků?

Algoritmy jako Huffmanovo kódování přiřazují krátké binární kódy častým znakům a dlouhé kódy vzácným. Příklad: V anglickém textu může mít 'E' 3-bitový kód (000), zatímco 'Z' 11 bitů. Protože 'E' se vyskytuje 12,7% času a 'Z' pouze 0,07%, ušetříte obrovské množství místa. Toto je základní princip formátů ZIP, GZIP a mnoha dalších bezztrátových kompresních formátů. Algoritmus nejprve vytvoří tabulku četnosti a poté kóduje podle těchto statistik.

Záleží na velkých a malých písmenech?

Záleží na vašem cíli. Pro kryptoanalýzu je uchovávejte oddělené - 'E' a 'e' mohou dešifrovat na různá písmena. Pro lingvistickou analýzu nebo optimalizaci komprese je často převedete na malá písmena, abyste se zaměřili na vzory písmen spíše než na styl psaní velkých písmen. Tento nástroj je počítá jako odlišné znaky a poskytuje vám surová data pro rozhodnutí, jak je interpretovat.

Může četnost znaků identifikovat autora textu?

Samostatně ne, ale přispívá k stylometrické analýze. Každý autor má jemné vzory: hustotu interpunkce, průměrnou délku slov (odrážející se v distribuci znaků) a zvláštnosti použití písmen. Ve spojení s výběrem slov, strukturou vět a dalšími ukazateli se četnost znaků stává jedním bodem dat ve větším otisku autorství. Forenzní lingvisté je používají pro případy atribuce, ale žádná jednotlivá metrika nestačí sama o sobě.

Jak nástroj počítá mezery a interpunkci?

Počítají se všechny znaky, včetně mezer, tabulátorů, zalomení řádků, interpunkce a speciálních symbolů. Mezery jsou často nejčastějším "znakem" v běžném textu. Tento úplný počet vám poskytuje úplný obraz složení textu - užitečný pro detekci skrytého formátování, analýzu kódu (kde záleží na závorkách a středníkách) nebo pochopení úplné struktury šifrovaných zpráv.

Jaká je maximální velikost textu, který mohu analyzovat?

Nástroj snadno zvládá typické dokumenty - až 50 000-100 000 znaků by mělo fungovat v jakémkoli moderním prohlížeči. Nad tento limit můžete zaznamenat zpomalení při zpracování dat JavaScriptem. Pro analýzu celých knih nebo obrovských datových souborů (miliony znaků) byste potřebovali implementaci na straně serveru v Pythonu, Go nebo jiném jazyce navrženém pro zpracování těžkých dat. Pro každodenní použití však prohlížečový nástroj zvládá vše, co budete potřebovat.

Technické reference a další literatura

  1. MDN Web Docs: Mapa (Implementace hashovací mapy v JavaScriptu) - Oficiální dokumentace Mozilla Developer Network k datovým strukturám hashovacích map používaných ve frekvenční analýze.

  2. Shannon, C. E. (1951). "Predikce a entropie tištěné angličtiny." The Bell System Technical Journal, 30(1), 50-64. - Základní práce o teorii informací a četnosti znaků.

  3. Huffman, D. A. (1952). "Metoda konstrukce minimálně redundantních kódů." Proceedings of the IRE, 40(9), 1098-1101. - Původní práce popisující Huffmanovo kódování, které spoléhá na četnost znaků.

  4. Standard kódování znaků Unicode - Oficiální dokumentace konsorcia Unicode pro pochopení znakových sad a kódování.

  5. Stallings, W. (2017). Kryptografie a síťová bezpečnost: Principy a praxe (7. vyd.). Pearson. - Komplexní učebnice pokrývající techniky kryptoanalýzy včetně frekvenční analýzy.

  6. Huffmanovo kódování - Wikipedie - Podrobné vysvětlení kompresních algoritmů závislých na četnosti znaků.

  7. Juola, P. (2006). "Atribuce autorství." Foundations and Trends in Information Retrieval, 1(3), 233-334. - Akademický výzkum využití vzorů znaků pro identifikaci autorství.

Začněte analyzovat váš text

Jste připraveni odhalit skryté vzory ve vašem textu? Vložte jakýkoli obsah do nástroje výše - šifrované zprávy, ukázky kódu, vzorky textu nebo dokumenty v jakémkoli jazyce. Vizualizace se zobrazí okamžitě a ukáže vám přesně, které znaky ve vašem textu dominují. Ať už ladíte problémy s kódováním, analyzujete šifry nebo jste prostě jen zvědaví na rozložení znaků, získáte okamžité a použitelné poznatky.