CRYPT(3)

BEZEICHNUNG
crypt - Paßwort- und Datenverschlüsselung

ÜBERSICHT
#include <crypt.h>

char *crypt(const char *key, const char *salt);

BESCHREIBUNG
crypt bietet Zugriff auf zwei Algorithmen für die Verschlüsselung von Paßwörtern. Eines ist basiert auf dem Algorithmus Data Encryption Standard (DES) mit Variationen, die dazu dienen (unter anderem), Hardware-Implementierungen von Schlüsselsuchen zu verhindern. key ist ein vom Benutzer eingegebenes Paßwort. salt ist eine zwei Zeichen lange Zeichenkette bestehend aus Zeichen der Menge [a–zA–Z0–9./]. Die Zeichenkette wird dafür verwendet, den Algorithmus auf 4096 unterschiedliche Arten zu beeinflussen. Von den untersten 7 Bit jedes Zeichens von key wird ein 56-Bit Schlüssel genommen. Dieser 56-Bit Schlüssel wird verwendet umd mehrfach eine konstante Zeichenkette zu verschlüsseln (üblicherweise eine Zeichenkette aus lauter Nullen). Der zurückgegebene Wert zeigt auf das verschlüsselte Paßwort, eine Reihe von 13 druckbaren ASCII-Zeichen (die ersten beiden Zeichen repräsentieren den salt selbst). Der Rückgabewert zeit auf statische Daten, die bei einem weiteren Aufruf überschrieben werden. Warnung: Der Schlüsselraum besteht aus 2**56 gleich 7.2e16 möglichen Werten. Eine vollständige Suche über diesem Schlüsselraum ist möglich mit massiv parallelen Computern. Software wie crack(1) ist verfügbar und durchsucht den Teil, der normalerweise von Menschen für Paßwörter benutzt wird. Daher sollten Paßwörder wenigstens übliche Namen und Wörter vermeiden. Die Verwendung des Programms passwd(1), das automatisch auf leicht zu knackende Paßwörter während der Eingabe prüft, wird empfohlen. Der DES-Algorithmus selbst hat ein paar Eigenarten, mit denen die Verwendung von crypt(3) für etwas anders als Paßwortverschlüsselung eine schlechte Wahl wird. Wenn Sie vorhaben, die Schnittstelle crypt(3) für ein kryptografisches Projekt zu verwenden, tun Sie es nicht: holen Sie sich ein gutes Buch über Verschlüsselung und eine der weitläufig verfügbaren DES-Bibliotheken.

Wenn der salt mit $1$ beginnt, wird ein MD5-basierter Paßwort-Hash-Algorithmus verwendet. Der salt sollte aus $1$ bestehen, gefolgt von acht Zeichen. Programme, die diese Funktion verwenden, müssen mit -lcrypt gelinkt werden.

KONFORM ZU
SVID, X/OPEN, BSD 4.3

SIEHE AUCH
login(1), passwd(1), encrypt(3), getpass(3), passwd(5).