Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeHaupt-Feeds

SHA-256 visualisiert

30. April 2022 um 19:52

Kryptographische Hashfunktionen sind ein wichtiger Grundpfeiler in der Kryptographie. Sie sind ein Spezialfall der normalen Hashfunktionen bzw. Streuwertfunktionen und ermöglichen die Erhaltung der Integrität von Informationen, insbesondere im Einsatz als Prüfsumme (engl. checksum). Die Kunst bei der Entwicklung einer kryptographischen Hashfunktion ist es, einerseits eine beliebig große Eingabemenge auf eine kleinere Zielmenge, bei der in der Regel die Elemente die gleiche Länge besitzen, abzubilden und andererseits darauf zu achten, dass es besonders schwer ist, zu einem beliebigen oder gegebenen Hashwert einen zweiten Eingabewert zu finden.

SHA-256 ist ein wichtiger Vertreter der modernen kryptographischen Hashfunktionen. Standardisiert wurde die Funktion u. a. in RFC 6234. Mein heutiger Webtipp sha256algorithm.com dreht sich um die Funktionsweise von SHA-256. Auf der Seite wird anschaulich dargelegt, wie eine Eingabe in die Ausgabe, den „Hash“ bzw. „Hashwert“ verwandelt wird. Dabei wird deutlich, dass die Funktionsweise mitunter deutlich komplexer erscheint, als angenommen – der Algorithmus aber trotzdem recht einfach ist und in knapp 160 Zeilen C-Code (hier ein Beispiel ohne Gewähr auf Standardkonformität) untergebracht werden kann.

Mir gefällt besonders die Interaktivität der Webseite. Eigene Eingaben können im ASCII/UTF-8-, Binär- oder Hexadezimalformat eingeben sowie verarbeitet und der Algorithmus Schritt für Schritt durchlaufen werden. Ebenfalls wird auf der Seite deutlich, dass die Zwischenwerte zum Erlangen des Hashwertes teilweise sehr durchmischt werden. Es lässt sich darüber hinaus erkennen, wie selbst eine „leere“ Eingabe so verarbeitet wird, dass ihre Ausgabe, der Hashwert, wenig Aufschluss über Wert und Beschaffenheit der zugrundeliegenden Eingabe bietet.

Wer genauere Details zu den verschiedenen SHA-Algorithmen sucht, kann im Anschluss im o. g. RFC-Dokument weiter fündig werden. Die Webseite hinter dem heutigen Webtipp wurde von Domingo Martin entwickelt, ihr Quelltext steht auf GitHub bereit.

Wie funktioniert eigentlich... GPS?

31. Januar 2022 um 22:05

Zum Ende des Monats möchte ich euch diesen Webtipp nicht vorenthalten. Es gibt viele Webseiten, die Dinge gut und anschaulich erklären. Mitte des Monats bin ich jedoch auf einen Artikel gestoßen, der das richtig gut umsetzt: GPS von Bartosz Ciechanowski. Er hat eine interaktive Webseite gebaut, auf der die Funktionalität vom Global Positioning System (Wikipedia) erklärt wird. Von der Funktionsweise ist sie zwischen einer Physiksimulation und einem Spiel einzuordnen. Verständlich, anschaulich und „clean“ – das findet man heutzutage selten. Technisch ist das Ganze dabei offenbar in WebGL geschrieben.

Wer schon immer mal wissen wollte, wie Satellitennavigation funktioniert, findet auf der Webseite eine wunderschöne Erläuterung. Sicherlich einen Besuch wert.

Bash-Kommandos erklären lassen

31. Dezember 2021 um 17:08

Wer Linux intensiv nutzt, wird um die Kommandozeile nicht herumkommen. Hier läuft meist eine Shell, die kompatibel zur Bash ist oder bei der es sich direkt um die Bash handelt.

Interessant bei Bash (und vielen anderen Shells) ist die Leistungsfähigkeit. So beschränkt sich die Kommandozeile nicht auf einfache Programmaufrufe, sondern bietet einige Ausdrücke, die in Verbindung mit kleinen Hilfsprogrammen unter anderem bedingte Anweisungen oder Schleifen ermöglichen. Leider ist die Syntax im Gegensatz zu anderen Skriptsprachen manchmal ungewohnt, weswegen unregelmäßige Anwender öfter mal in der Dokumentation nachlesen müssen.

Eine interessante Unterstützung bietet hierbei explainshell.com. Hier kann man einen Bash-Ausdruck eingeben und ihn sich von der Seite erklären lassen. Dabei werden nicht nur die Manpages der verwendeten Kommandos wie find, grep oder git, sondern auch die passenden Auszüge der bash-Manpage selber eingebunden. Dies wird zusätzlich anschaulich visualisiert.

Der Quellcode von explainshell.com ist GPL-3-lizenziert und auf GitHub verfügbar.

❌
❌