August 2006 Blog Posts

Wie sicher ist mein Passwort?

Der Datenschutzbeauftrage des Kantons Zürich hat einen neuen Passwortchecker zur Verfügung gestellt. Das eingegebene Passwort wird anhand verschiedener Kriterien bewertet und klassifiziert. Ein cooles Feature ist z.B. die geschätzte Dauer einer brute-force Attacke beim eigegebenen Passwort (das hoffentlich nicht produktiv im Einsatz ist...).https://passwortcheck.datenschutz.ch/

Leiden am Freitag

Bei meinen letzten zwei Leiden kamen gleich mehrere Problematiken zusammen. Der Verständlichkeit wegen hier noch die ganze Vorgeschichte dazu: Alles fing damit an, dass ich für eine grosse Tabelle mit ~1.6 Mio. Records im SQL Server einen Volltextindex angelegt habe. Da die importierten Daten nicht über einen dafür erforderlichen "single row unique identifier" (eine Spalte als PK) verfügte, nahm ich eine zusätzliche Spalte mit einem autoincrement Wert zur Hilfe. Zu solch speziellen Daten gelangt man im übrigen, indem man verschiedene Fileserver auf vergebene Berechtigungen scannt. Benutzer, Gruppen, Verzeichnisnamen, Laufwerke, Servername - alles ist in Fülle mehrfach vorhanden... aber soweit, so gut. Die Daten der Tabelle werden täglich...

Hashwerte mittels checksum eindeutiger machen

Checksum ist eine nützliche Funktion des SQL Servers um einen Hashwert aus einer Menge von Daten zu erzeugen. Ein gutes Anwendungsbeispiel dafür beschreibt Arthur Fuller auf www.simple-talk.com. Will man mittels Checksum jedoch möglichst einzigartige Werte erzeugen die reproduzierbar sind, scheitert man relativ rasch an der Tatsache, dass Hashwerte halt eben doch schnell mal doppelt vorkommen. Man spricht in dem Fall von einer so genannten "hash collision". Mit dem Prinzip des salzen (was nicht nur bei Rechnungen funktioniert: http://de.wikipedia.org/wiki/Salted_Hash) lassen sich die Ausgangswerte (und somit in aller Regel der späterne Hash) einzigartiger machen. Dazu nimmt man am einfachsten zu jeder Spalte welche gehasht...

Zwei Tabellen abgleichen ohne unique identifier

Wie kann ich zwei Tabellen einer Datenbank miteinander abgleichen? Eine häufig gefragte Frage zu der es einen pragmatischen Lösungsansatz gibt. Zunächst werden anhand des primary keys die Datensätze in Tabelle 1 (t1)  ermittelt die nicht in Tabelle 2 (t2) vorhanden sind und in selbige mittels INSERT reingeschrieben. Anschliessend sucht man alle Datensätze in t2 welche in t1 nicht vorkommen und löscht diese mittels DELETE. Dies lässt sich am einfachsten mittels IN und NOT IN bewerkstelligen: http://www.w3schools.com/sql/sql_in.asp Was aber macht man wenn man keinen primary key besitzt, mittels dem man die beiden Tabellen vergleichen kann? Ganz einfach - man bastelt sich einen. Gegeben seien die...

Tool der Woche: Wieso will mein PC neu starten?

Eine Antwort auf diese nicht selten gestellte Frage liefert das geniale Freeware-Tool WhyReboot: http://www.exodus-dev.com/products/whyreboot/ Das Tool zeigt z.B. an, das Files gelöscht werden sollen die noch vom OS mit einem Handle belegt sind, oder Registry Einträge vorgenommen wurden.