Skip to main content

No project description provided

Project description

Boyer-Moore-Algorithmus

Im Rahmen der Hausarbeit Teilstring-basiertes Pattern Matching zur Erkennung von Phishing-URLs, Untersuchung der Effektivität des Boyer-Moore-Algorithmus habe ich die C++-Implementierung des Boyer-Moore-Algorithmus von Wikipedia in Python portiert und um die Suche in .txt Dateien erweitert. Zur Effizienzsteigerung werden sowohl die Muster als auch der zu durchsuchende Text vorverarbeitet, bevor der eigentliche Vergleich beginnt.

Das Ziel dieser Implementierung ist es, mehrere Datensätze – bestehend aus Phishing- und legitimen URLs – zu durchlaufen und relevante Muster zu identifizieren. Die ermittelten Ergebnisse werden anschließend getrennt analysiert, interpretiert und visualisiert.


Installierung

Die Installierung erfolgt mit pip

pip install boyer-moore-algorithmus

und kann dann ganz einfach in python importiert werden

import boyer_moore_algorithmus as boyer
Requirements

Das Packet benötigt eine Reihe an andere Packete um ohne Probleme zu funktionieren, diese in der requirements.txt aufgelistet. Sie können diese Anforderungen ganz einfach installieren:

pip install -r requirements.txt

Funktionen

Die Funktionen sind auf "bereinigte" Datensätze ausgelegt. Also .txt Dateien die entweder nur Phishing oder legitime URLs beinhalten. Die folgende Version nutzten alle folgende Liste:

list_of_patterns = [
    "http://","@","?","=","_","confirm","account",
    "banking","secure","webscr","login","signin","top","xyz",
    "cn","info","shop","online","sbs","ru","lol","site","cfd"
    "club","bond","live","cc","life","click","paypal"
]

Normaler Boyer Moore Algorithmus

Die Hauptfunktion boyer_moore braucht .txt Datei und eine Liste von Muster. Ein string funktionert auch als Muster, dabei ist jedoch zu beachten, dass hier jedes Zeichen als eigenes Muster genommen und nicht der komplette string.

Es wird einmal die eingegebene List von Muster, die Anzahl wie oft jedes Muster gefunden wurde und wie viele URLs als Phishing "makiert" worden sind zurück geliefert.

list_of_patterns, occurrences_of_pattern, total_hits = boyer.boyer_moore("example\dataset_phishing.txt",list_of_patterns)
-----------------------------------------------------------------------
>>> Anzahl von jedem Muster: [4416, 2487, 57613, 58153, 40150, 3373, 7422, 628, 9231, 12980, 38567, 1920, 4545, 1159, 8397,
                             11323, 1739, 4952, 148, 24877, 340, 12161, 0, 57, 1015, 20146, 552, 1068, 19604] 

>>> Gefunde Phishing URLs: 87959

Zeitmessung Boyer Moore Algorithmus

Hier wird eine Zeitmessung durchgeführt. Sie stoppt die Zeit zwischen jedem Eintrag in der .txt Datei und wartet dann eine Sekunde. Zubeachten ist, dass es sich empfiehlt einen kleinern Datensatz zu nutzen. In example.py wird die Zeitmessung mit dateset_timed.py durchgeführt dabei sind es nur 250 URLs die geprüft werden.

list_of_patterns, occurrences_of_pattern, total_hits, timer = boyer.boyer_moore_timed("example\dataset_timed.txt",list_of_patterns)
-----------------------------------------------------------------------
>>> Anzahl von jedem Muster: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
>>> Legitime URLs als Phishing makiert: 0 
>>> Die durchschnittliche Zeit ¼r die Suche nach allen Musters innerhalb einer URL bzw. 50 URLs:
    (datetime.timedelta(microseconds=37), datetime.timedelta(microseconds=1850))

Visualisierung Boyer Moore Algorithmus

Eine schicke optische Darstellung der Ergebnisse von einem legitimen und einem phishing Datensatz. Zum einen eine Confusion Matrix und zum anderen jeweils die Top 10 Muster der .txt Dateien.

boyer.boyer_moore_visualised("example\dataset_phishing.txt","example\dataset_legitim.txt",list_of_patterns)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boyer_moore_algorithmus-1.0.4.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boyer_moore_algorithmus-1.0.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file boyer_moore_algorithmus-1.0.4.tar.gz.

File metadata

  • Download URL: boyer_moore_algorithmus-1.0.4.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for boyer_moore_algorithmus-1.0.4.tar.gz
Algorithm Hash digest
SHA256 2438ac3dd4d7b87b5ad2a0d5a91f2e94369a01af4e30e457d96a2abb399cb424
MD5 807161a360e8da33f8273397e7ae5e77
BLAKE2b-256 14b4b1e7d4e1eb40be1cee5591f26de4562617048079fc094c268a131eecf5ce

See more details on using hashes here.

File details

Details for the file boyer_moore_algorithmus-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for boyer_moore_algorithmus-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7c86eea924b52e7f74d5f33b8efb9239a4940d8469c9b058a8ed3cea8f6667b0
MD5 88c031d64b7f9f3a13a8c237637a48e3
BLAKE2b-256 9ee75ce9fbac30718e860fb9bf9c1f12dfdc11097f69295fd14adc7abd1da61d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page