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)