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¶
  - ENOSYS
 
  - Die Funktion crypt() wurde nicht implementiert,
      wahrscheinlich wegen Export-Beschränkungen der U.S.A.
 
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:
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 3.42 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>.