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)