Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       crypt, crypt_r - Passwort- und Datenverschlüsselung

ÜBERSICHT

       #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 für die Verschlüsselung von Passwörtern. Sie beruht auf dem »Data
       Encryption«-Standardalgorithmus. Dieser wurde abgewandelt, um (unter anderem) vom  Einsatz
       von Hardware-Implementierungen von Schlüsselsuchen abzuschrecken.

       key ist das vom Benutzer eingegebene Passwort.

       salt   ist   eine   aus   zwei  Zeichen  bestehende  Zeichenkette  aus  dem  Zeichenvorrat
       [azAZ09./]. Diese Zeichenkette wird dafür 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-Schlüssel erzeugt. Dieser  56-Bit-Schlüssel  wird  verwendet,  um  wiederholt  eine
       konstante  Zeichenkette  zu  verschlüsseln  (üblicherweise  eine  Zeichenkette  aus lauter
       Nullen). Der zurückgegebene Wert zeigt auf das verschlüsselte Passwort, eine Reihe von  13
       druckbaren  ASCII-Zeichen. (Die ersten beiden Zeichen repräsentieren den Salt selbst.) Der
       Rückgabewert zeigt auf statische Daten, deren Inhalt bei jedem Aufruf überschrieben wird.

       Warnung: Der Schlüsselraum besteht aus  2**56  gleich  7.2*10^16  möglichen  Werten.  Eine
       vollständige  Durchsuchung  dieses  Schlüsselraums  ist  mit  massiv  parallelen Computern
       möglich. Es ist Software wie beispielsweise crack(1) verfügbar und  durchsucht  den  Teil,
       der  gewöhnlich  von  Menschen  für  Passwörter  benutzt  wird.  Daher  sollten Passwörter
       wenigstens übliche Namen und Wörter vermeiden. Die Verwendung  eines  passwd(1)-Programms,
       das  automatisch   während  der  Eingabe  auf  leicht  zu knackende Passwörter prüft, wird
       empfohlen.

       Der DES-Algorithmus selbst hat ein paar Eigenarten, mit denen die Verwendung von  crypt(3)
       für  etwas  Anderes  als  Passwortverschlüsselung  eine sehr schlechte Wahl wird. Wenn Sie
       vorhaben, die crypt()-Schnittstelle  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.

       crypt_r() ist eine ablaufinvariante Version von crypt(). Die Struktur, auf die data zeigt,
       wird  für  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ÜCKGABEWERT

       Bei Erfolg wird ein Zeiger auf das verschlüsselte Passwort zurückgegeben. Tritt ein Fehler
       auf, ist der Rückgabewert NULL.

FEHLER

       ENOSYS Die   Funktion   crypt()   wurde   nicht   implementiert,   wahrscheinlich    wegen
              Export-Beschränkungen 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 unterstützt weitere Verschlüsselungsalgorithmen.

       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  Verschlüsselungsmethode  und  legt
       fest, wie der Rest der Passwortzeichenkette interpretiert wird. Die folgenden Werte von id
       werden unterstützt:

              ID  | Methode
              ───────────────────────────────────────────────────────────────
              1   | MD5
              2a  | Blowfish (nicht im Hauptentwicklungszweig der Glibc;
                  | in einigen Linux-Distributionen hinzugefügt)
              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 für die bis zu 16 Zeichen, die »$id$« im Salt folgen. Der verschlüsselte Teil
       der Passwortzeichenkette entspricht dem tatsächlich berechneten Passwort. Die Länge 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 [azAZ09./] gewählt. 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  Veröffentlichung  3.32  des  Projekts  Linux-man-pages. Eine
       Beschreibung des Projekts und Informationen, wie Fehler  gemeldet  werden  können,  finden
       sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung  dieser  Handbuchseite  wurde  von  Martin  Eberhard  Schauer
       <Martin.E.Schauer@gmx.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.

                                          20. Juni 2010                                  CRYPT(3)