<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Aho-Corasick-Algorithmus</id>
	<title>Aho-Corasick-Algorithmus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Aho-Corasick-Algorithmus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Aho-Corasick-Algorithmus&amp;action=history"/>
	<updated>2026-06-04T08:25:23Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Aho-Corasick-Algorithmus&amp;diff=193415&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Aho-Corasick-Algorithmus&amp;diff=193415&amp;oldid=prev"/>
		<updated>2026-04-17T02:30:11Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Aho-Corasick-Algorithmus&amp;#039;&amp;#039;&amp;#039; ist ein [[String-Matching-Algorithmus]], der von [[Alfred V. Aho]] und [[Margaret J. Corasick]] [[1975]] entwickelt wurde.&amp;lt;ref&amp;gt;{{Literatur |Autor=Alfred V. Aho, Margaret J. Corasick |Titel=Efficient string matching: An aid to bibliographic search |Sammelwerk=Communications of the ACM |Band=18 |Nummer=6 |Datum=1975-06 |Seiten=333–340 |Sprache=en |DOI=10.1145/360825.360855}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der [[Algorithmus]] führt eine Art [[Wörterbuch]]-Vergleich durch, bei dem die Eingabe effizient nach vorher festgelegten Signaturen durchsucht wird. Dabei wird kein Zeichen der Eingabe mehr als einmal gelesen.&lt;br /&gt;
Das Verfahren ist dann besonders effizient, wenn sich die Signaturen überlappen, d.&amp;amp;nbsp;h. in [[Präfix]]- und [[Suffix]]-Beziehungen stehen (z. B. {„Igel“, „Geld“, „Eldorado“}).&lt;br /&gt;
Der Aho-Corasick-Algorithmus besteht aus zwei Phasen:&lt;br /&gt;
&lt;br /&gt;
# Zunächst erzeugt der Algorithmus auf Basis der gegebenen bzw. gewünschten Wörterbuchmenge eine [[Trie|Trie-Struktur]], die auch als endlicher [[Zustandsautomat]] interpretiert werden kann. Jedem Zustand wird eine Ausgabemenge zugeordnet, die zunächst leer ist. Für jeden Zustand, bei dem ein Suchwort endet, wird dieses Suchwort seiner Ausgabemenge hinzugefügt.&lt;br /&gt;
# In der zweiten Phase werden die Knoten oder Zustände des Tries paarweise disjunkt nummeriert und eine Fehlerfunktion berechnet. Die Funktion ist für jeden Knoten definiert und legt fest, in welchem Zustand die Verarbeitung fortgesetzt wird, falls das gerade gelesene Zeichen der Eingabe keinen regulär gültigen Zustandsübergang bewirkt. Dadurch wird es möglich, schnell zwischen bereits erkannten Teilsignaturen zu wechseln und die Erkennung fortzusetzen, ohne den Automaten neu starten zu müssen.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
[[Datei:Ahocorasick.svg|mini|Visualisierung eines mustererkennenden Automaten]]&lt;br /&gt;
&lt;br /&gt;
Einfach gesagt baut der Algorithmus einen endlichen [[Zustandsautomat]]en auf und vergleicht diesen mit dem Eingabetext. Falls die [[Virensignatur|Signatur]] bereits im Vorfeld bekannt ist (zum Beispiel bei einer Anti-Viren-Datenbank), kann der Aufbau auch vor dem Start des [[Computerprogramm|Programms]] &amp;#039;&amp;#039;off-line&amp;#039;&amp;#039; erfolgen und zur späteren Benutzung abgespeichert werden.&lt;br /&gt;
&lt;br /&gt;
Der Aho-Corasick-Algorithmus ist die Basis des [[UNIX]]-Kommandos [[Grep#fgrep|fgrep]],&amp;lt;ref&amp;gt;{{Internetquelle |url=https://git.savannah.gnu.org/cgit/grep.git/commit/src?id=a3d42de483a29c1da381f5c3dad87cbbc86a5c70 |titel=grep: use Aho-Corasick algorithm to search multiple fixed words |werk=grep: Git-Repository |datum=2016-06-02 |sprache=en |abruf=2017-12-17}}&amp;lt;/ref&amp;gt; des [[Intrusion Detection System]]s [[Snort]]&amp;lt;ref&amp;gt;{{Literatur |Autor=Adir Gabai |Titel=Integrating Aho-Corasick based algorithm for Compressed Traffic (ACCH) Inside Snort |Datum=2015 |Sprache=en |Online={{Webarchiv |url=http://www.deepness-lab.org/pubs/acch_snort_project_paper.pdf |text=deepness-lab.org |wayback=20170113003351}} |Format=PDF |KBytes=466}}&amp;lt;/ref&amp;gt;, der [[Web Application Firewall]] [[ModSecurity]]&amp;lt;ref&amp;gt;Breach Security Inc.: [https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-%28v2.x%29 ModSecurity Reference Manual]&amp;lt;/ref&amp;gt; und des Malware-Signatur Frameworks [[YARA]]&amp;lt;ref&amp;gt;{{Internetquelle |url=https://virustotal.github.io/yara-x/docs/intro/yara-x-vs-yara/ |titel=YARA-X vs YARA |datum=2023-09-07 |sprache=en |abruf=2024-07-23}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [[Java (Programmiersprache)|Java]]-Implementierung: [https://github.com/robert-bor/aho-corasick]&lt;br /&gt;
* [[Python (Programmiersprache)|Python]]-Implementierung: [https://github.com/vi3k6i5/flashtext]&lt;br /&gt;
* [[C++]]-Implementierung: [https://github.com/cjgdev/aho_corasick]&lt;br /&gt;
* [[World Wide Web|Web]]-Visualisierung: [https://wiomoc.de/aho-corasick-viz/]&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Suchalgorithmus]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>