Stefan hat mit seiner Lösung der Code Competition “Sicher ist sicher” vollkommen überzeugt und sich den ersten Platz gesichert – herzlichen Glückwunsch! Mit seiner Software hat er in nahezu allen Kategorien Bestbewertungen bekommen. Hier stellt er Dir sich und seine Lösung kurz vor. IT-Talents: Stefan, herzlichen Glückwunsch zum 1. Platz bei der Code Competition 04/2016 zum Thema „Sicher ist sicher“. Stell Dich den anderen IT-Talenten doch kurz vor. Stefan: Hallo zusammen! Mein Name ist Stefan, ich bin glatte 30 Jahre alt und wohne in einem kleinen Ort bei Karlsruhe. Nach einer Ausbildung zum Mediengestalter verschlug es mich nach kurzer Zeit in der Werbebranche in ein Softwareunternehmen, in dem ich bis heute arbeite. IT-Talents: Was hat Dich motiviert, an der Competition teilzunehmen? Stefan: Zum einen fand ich das Thema „Verschlüsselung“ ganz interessant, zum anderen wollte ich aber auch meine Fähigkeiten ausbauen. Da kommt ein „Freizeitprojekt“, das ein konkretes Ziel und einen Nutzen hat, gerade recht. Vor allem, wenn es auch etwas zu gewinnen gibt :)) IT-Talents: Das freut uns 😉 Und wie bist Du auf die Code Competition aufmerksam geworden? Stefan: Im Januar habe ich bei Facebook eine Werbung für eure Code Competition gesehen (Conway’s Game of Life) und prompt mitgemacht. Seitdem schau ich öfters mal wieder rein, was dieses Mal ansteht. IT-Talents: Wie bist Du an die Lösung der Aufgabenstellung heran gegangen, und wieso hast Du Dich für die Programmierung in C# entschieden? Stefan: Nachdem ich die Aufgabenstellung erfasst habe, habe ich mir zunächst einen Überblick darüber verschafft, was es alles an Verschlüsselungsverfahren gibt und wie diese (grundlegend) funktionieren. Nachdem meine Entscheidung für AES-256 gefallen ist, habe ich die MSDN „gewälzt“, um in Erfahrung zu bringen, wie die Algorithmen mit Hilfe des .NET Framework implementiert werden können. Der nächste Schritt war dann, zu konzipieren, wie das Ganze funktionieren soll (Bedienkonzept, Klassen, etc.). Nachdem das feststand, bin ich an die Benutzeroberfläche gegangen und habe die Aufgabe umgesetzt. Ich habe mich deshalb für C# entschieden, weil ihr Objective-C nicht zulasst! 😉 Nein, Spaß beiseite – C# ist eine, wie ich finde, einfach zu erlernende, aber trotzdem mächtige Programmiersprache. Zudem bringt das .NET Framework (fast) alles mit, was man so braucht. IT-Talents: Welche Probleme sind bei der Entwicklung der Software aufgekommen? Wie lange hat die Entwicklung gedauert? Stefan: Konzeptionell hatte ich das Problem, wie ich die verschlüsselten Dateien mit meinem Programm „koppeln“ kann, um zu verhindern, dass die Dateien mit einem anderen Programm entschlüsselt werden können. Prinzipiell ist das natürlich möglich, die Dateien sind dann aber unbrauchbar. Da mein Programm eigene Icons für verschlüsselte Dateien mitbringt, mussten natürlich die Endungen mit den Icondateien über die Registry verknüpft werden. Das ist nicht mit .NET-Klassen möglich, weshalb ich hier mittels PInvoke auf WinAPI-Funktionen zurückgreifen musste. Was dann auch aufwändig war, war die verschiedenen Fehler abzufangen und richtig auszuwerten, die die Arbeit mit dem Dateisystem und den Cryptography-Klassen mit sich bringen. Ich habe für die Entwicklung ca. 2,5 Wochen benötigt, also ca. 40 Stunden. IT-Talents: Sehr interessant, was hast Du durch die Entwicklung gelernt? Stefan: Nicht nur, was es für Verschlüsselungsverfahren gibt, sondern darüber hinaus konnte ich auch meine Kenntnisse über die Arbeit mit Dateien vertiefen und lernen, wie Drag’n’Drop mit Windows Forms grundsätzlich funktioniert. IT-Talents: Kannst Du uns kurz erklären, wie Du die Verschlüsselung implementiert hast? Stefan: Vorneweg: Ich habe die System.Security.Cryptography.Aes-Klassen des .NET Framework verwendet, um die Dateien zu verschlüsseln und zu entschlüsseln. Der entsprechende Schlüssel wird entweder vom Benutzer eingegeben, wobei eine Passwortlänge zwischen 8 und 16 Zeichen erlaubt ist, oder der Benutzer verwendet eine zuvor erstellte Schlüsseldatei, die einen Schlüssel und weitere Informationen enthält. Dabei können mit einer Schlüsseldatei verschlüsselte Dateien nur mit der gleichen Schlüsseldatei entschlüsselt werden. Die eigentliche Verschlüsselung (bzw. Entschlüsselung) läuft in einem Hintergrundthread, der einen Fortschrittsdialog aktualisiert, um dem Benutzer Feedback zu geben. IT-Talents: Was würdest Du Dir thematisch gerne einmal als Code Competition wünschen? Stefan: Ich lasse mich da eigentlich gerne überraschen 😉 Aber irgendwas mit Social Media wäre interessant, z.B. ein „Client“ für verschiedene Social Media-Dienste. IT-Talents: Vielen Dank für Deine Teilnahme, das Interview und viel Spaß mit Deinem Gewinn 😉