Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
crypt, crypt_r - Passwort- und Datenverschlusselung
"UBERSICHT
#define _XOPEN_SOURCE /* siehe feature_test_macros(7) */
#include <unistd.h>
char *crypt(const char *key, const char *salt);
char *crypt_r(const char *key, const char *salt,
struct crypt_data *data);
Linken Sie mit der Option -lcrypt.
BESCHREIBUNG
crypt() ist die Funktion fur die Verschlusselung von Passwortern. Sie
beruht auf dem >>Data Encryption<<-Standardalgorithmus. Dieser wurde
abgewandelt, um (unter anderem) vom Einsatz von
Hardware-Implementierungen von Schlusselsuchen abzuschrecken.
key ist das vom Benutzer eingegebene Passwort.
salt ist eine aus zwei Zeichen bestehende Zeichenkette aus dem
Zeichenvorrat [a-zA-Z0-9./]. Diese Zeichenkette wird dafur verwendet,
den Algorithmus auf eine von 4096 unterschiedliche Arten zu
beeinflussen.
Aus den untersten sieben Bit jedes der ersten acht Zeichen von key wird
ein 56-Bit-Schlussel erzeugt. Dieser 56-Bit-Schlussel wird verwendet,
um wiederholt eine konstante Zeichenkette zu verschlusseln
(ublicherweise eine Zeichenkette aus lauter Nullen). Der zuruckgegebene
Wert zeigt auf das verschlusselte Passwort, eine Reihe von 13
druckbaren ASCII-Zeichen. (Die ersten beiden Zeichen reprasentieren den
Salt selbst.) Der Ruckgabewert zeigt auf statische Daten, deren Inhalt
bei jedem Aufruf uberschrieben wird.
Warnung: Der Schlusselraum besteht aus 2**56 gleich 7.2*10^16 moglichen
Werten. Eine vollstandige Durchsuchung dieses Schlusselraums ist mit
massiv parallelen Computern moglich. Es ist Software wie beispielsweise
crack(1) verfugbar und durchsucht den Teil, der gewohnlich von Menschen
fur Passworter benutzt wird. Daher sollten Passworter wenigstens
ubliche Namen und Worter vermeiden. Die Verwendung eines
passwd(1)-Programms, das automatisch wahrend der Eingabe auf leicht zu
knackende Passworter pruft, wird empfohlen.
Der DES-Algorithmus selbst hat ein paar Eigenarten, mit denen die
Verwendung von crypt(3) fur etwas Anderes als Passwortverschlusselung
eine sehr schlechte Wahl wird. Wenn Sie vorhaben, die
crypt()-Schnittstelle fur ein kryptografisches Projekt zu verwenden,
tun Sie es nicht: Holen Sie sich ein gutes Buch uber Verschlusselung
und eine der weitlaufig verfugbaren DES-Bibliotheken.
crypt_r() ist eine ablaufinvariante Version von crypt(). Die Struktur,
auf die data zeigt, wird fur die Speicherung von Ergebnisdaten und
Buchhaltungsinformationen verwendet. Der Aufrufende sollte die
Struktur lediglich bereitstellen und data->initialized auf Null setzen,
bevor crypt_r() erstmalig aufgerufen wird.
R"UCKGABEWERT
Bei Erfolg wird ein Zeiger auf das verschlusselte Passwort
zuruckgegeben. Tritt ein Fehler auf, ist der Ruckgabewert NULL.
FEHLER
ENOSYS Die Funktion crypt() wurde nicht implementiert, wahrscheinlich
wegen Export-Beschrankungen der U.S.A.
KONFORM ZU
crypt(): SVr4, 4.3BSD, POSIX.1-2001. crypt_r() ist eine
GNU-Erweiterung.
ANMERKUNGEN
Anmerkungen zur Glibc
Die Glibc2-Version dieser Funktion unterstutzt weitere
Verschlusselungsalgorithmen.
Wenn salt eine Zeichenkette ist, die mit den Zeichen >>$id$<< beginnt,
denen eine mit >>$<< abgeschlossene Zeichenkette folgt:
$id$salt$encrypted
dann identifiziert id anstelle des DES-Programms die
Verschlusselungsmethode und legt fest, wie der Rest der
Passwortzeichenkette interpretiert wird. Die folgenden Werte von id
werden unterstutzt:
ID | Methode
---------------------------------------------------------------
1 | MD5
2a | Blowfish (nicht im Hauptentwicklungszweig der Glibc;
| in einigen Linux-Distributionen hinzugefugt)
5 | SHA-256 (seit Glibc 2.7)
6 | SHA-512 (seit Glibc 2.7)
Also ist $5$salt$encrypted ein SHA-256-codiertes Passwort und
$6$salt$encrypted ist ein SHA-512-codiertes.
>>salt<< steht fur die bis zu 16 Zeichen, die >>$id$<< im Salt folgen.
Der verschlusselte Teil der Passwortzeichenkette entspricht dem
tatsachlich berechneten Passwort. Die Lange dieser Zeichenkette ist
festgelegt:
MD5 | 22 Zeichen
SHA-256 | 43 Zeichen
SHA-512 | 86 Zeichen
Die Zeichen in >>salt<< und >>encrypted<< werden aus dem Vorrat
[a-zA-Z0-9./] gewahlt. In den MD5- und SHA-Implementierungen ist der
gesamte key signifikant (anstelle nur der ersten acht Byte bei DES).
SIEHE AUCH
login(1), passwd(1), encrypt(3), getpass(3), passwd(5)
KOLOPHON
Diese Seite ist Teil der Veroffentlichung 3.32 des Projekts
Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie
Fehler gemeldet werden konnen, finden sich unter
http://www.kernel.org/doc/man-pages/.
"UBERSETZUNG
Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <Martin.E.Schauer@gmx.de> erstellt.
Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3 oder neuer bezuglich der Copyright-
Bedingungen. Es wird KEINE HAFTUNG ubernommen.
Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an <debian-l10n-
german@lists.debian.org>.
20. Juni 2010 CRYPT(3)