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

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)