QuickTipp: Passwort mit Hilfe von Linux generieren

4. Dezember 2013 um 17:00

Ein Passwort generieren
Mit dem heutigen Quick-Tipp lässt sich mit Hilfe der Linux-Shell und einem einzeiligen Befehl mit meist bereits vorhandenen Linux-Befehlen ein zufälliges 20-stelliges Passwort generieren – wunderbar für die Verwendung von automatischen Installationsscripts, ohne irgendwelche besonderen Abhängigkeiten zu haben bzw. spezielle Pakete vorher installieren zu müssen.

head -c 300 /dev/urandom | tr -cd '[a-zA-Z0-9-_]' | head -c 20

Mehrere Passwörter generieren
Beispiel um neun Passwörter je 20 Zeichen zu generieren:

# for ((i=1; i<=9; i++)); do echo -n "$i: " && head -c 300 /dev/urandom | tr -cd '[a-zA-Z0-9-_]' | head -c 20 && echo; done 1: UJB1-Fa0ELrFN8Rw5Qvx 2: x7et5c55ggG71[sNjN6x 3: -K9CsPSF_DO]P2NA3vkC 4: DjojU3Y9NMOgbQ50IYwS 5: GEJVdHmp-_VuTx_A7izX 6: KMnlxD[9543Gil_UNAd0 7: eazr4sPeGE0a-ZqG-Pxu 8: eCbf4tELNc7kn]Z0WCv6 9: WqjVnmKdcin_wg6BKRuc

Kurze Erklärung
Der Befehl kurz genauer erläutert:

head -c 300 /dev/urandomLiest die ersten 300 zufälligen Zeichen von /dev/urandom aus
tr -cd '[a-zA-Z0-9-_]'Löscht alle Zeichen, bis auf Buchstaben, Zahlen, Binde- und Unterstriche
head -c 20Gibt die ersten 20 Zeichen der geparsten Ausgabe aus

Update 16.09.2014: Man kann hierbei auch tr -cd '[:print:]' verwenden, wenn man alle "normal lesbaren" Zeichen zulassen möchte. Die Passwörter würden dann so ähnlich aussehen: k-/abFcS$I eA6m`its~

Linux: Passwortstärke überprüfen mit cracklib

25. Dezember 2012 um 03:53

cracklib

Wiedermal ein kleiner Tipp von einen kleinen und nützlichen Tool von Linux. Mit „cracklib-check“ ist es möglich, Passwörter zu prüfen, ob diese schwer knackbar sind oder nicht. Dabei wird in kleinen Wörterbüchern gesucht, ob ein Wort im Passwort vorkommt. Zusätzlich wird das Programm auch noch diverse andere Algorithmen haben, welche die Stärke ermitteln kann.

Die Beispiele kann man auch im Screenshot des Artikels lesen.

Installation

apt-get install libcrack2

Verwendungsbeispiele

# echo "test" | cracklib-check
test: it is too short

# echo "test123" | cracklib-check
test123: it is based on a dictionary word

# echo "H8dsl§3G3d$" | cracklib-check
H8dsl§3G3d$: OK

Verwendungsbeispiel in der Praxis

#!/bin/bash
# A sample shell script to add user to the system
# Check password for strength 
# Written by Vivek Gite under GPL v2.x+
# ----------------------------------------------
read -p "Enter username : " user
read -sp "Enter password : " password
echo
echo "Testing password strength..."
echo
result="$(cracklib-check <<<"$password")"
# okay awk is  bad choice but this is a demo 
okay="$(awk -F': ' '{ print $2}' <<<"$result")"
if [[ "$okay" == "OK" ]]
then
	echo "Adding a user account please wait..."
	/sbin/useradd -m -s /bin/bash $user
	echo "$user:$password" | /sbin/chpasswd
else
	echo "Your password was rejected - $result"
        echo "Try again."
fi

Quelle: http://www.cyberciti.biz/security/linux-password-strength-checker/

MySQL & PHP: Vergleichen eines eingegebenen Passwortes mit ENCRYPT von MySQL

27. November 2012 um 01:06

Ich stand gerade vor dem Problem, ein eingegebenes Passwort von einem HTML-Formular mit einer MySQL Datenbank zu vergleichen. Der Haken war jedoch, dass die Passwörter mit der ENCRYPT()-Funktion von MySQL verschlüsselt wurden.

Lässt man also ein Passwort in die MySQL Datenbank mit ENCRYPT(„passwort“) speichern, wird das Passwort zufällig verschlüsselt und wird bei so einen Beispiel-Vergleich mit PHP nie richtig sein:

mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort')")

Verzweifelt habe ich dennoch versucht, die Passwörter zu vergleichen.
Die Lösung war eigentlich einfach – wenn man es weiß…:

mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort', password)")

Das heißt, MySQL vergleicht – irgendwie – das eingebene mit dem vorhandenen Passwort und gibt danach das Passwort zurück, wenn das eingegebene Passwort richtig gewesen ist.

Ich hoffe es sparrt Euch viel Ärger und Nerven 🙂

Top