Provided by: manpages-de-dev_1.11-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);

       #define _GNU_SOURCE         /* Siehe feature_test_macros(7) */
       #include <crypt.h>

       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 [a-zA-Z0-9./]. 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

       EINVAL salt hat das falsche Format.

       ENOSYS Die  Funktion  crypt()  wurde  nicht implementiert, wahrscheinlich wegen Export-Beschränkungen der
              USA.

       EPERM  /proc/sys/crypto/fips_enabled hat einen von Null verschiedenen Wert und es wurde  versucht,  einen
              schwachen Verschlüsselungstyp wie DES zu verwenden.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────┬───────────────────────┬──────────────────────┐
       │ SchnittstelleAttributWert                 │
       ├───────────────┼───────────────────────┼──────────────────────┤
       │ crypt()       │ Multithread-Fähigkeit │ MT-Unsafe race:crypt │
       ├───────────────┼───────────────────────┼──────────────────────┤
       │ crypt_r()     │ Multithread-Fähigkeit │ MT-Safe              │
       └───────────────┴───────────────────────┴──────────────────────┘

KONFORM ZU

       crypt(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. 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  [a-zA-Z0-9./]  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  4.04  des Projekts Linux-man-pages. Eine Beschreibung des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite 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>.

                                                 8. August 2015                                         CRYPT(3)