.\" -*- coding: UTF-8 -*-
.\" Michael Haardt (michael@cantor.informatik.rwth.aachen.de)
.\" Sat Sep 3 22:00:30 MET DST 1994
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\" Sun Feb 19 21:32:25 1995, faith@cs.unc.edu edited details away
.\"
.\" TO DO: This manual page should go more into detail how DES is perturbed,
.\" which string will be encrypted, and what determines the repetition factor.
.\" Is a simple repetition using ECB used, or something more advanced? I hope
.\" the presented explanations are at least better than nothing, but by no
.\" means enough.
.\"
.\" added _XOPEN_SOURCE, aeb, 970705
.\" added GNU MD5 stuff, aeb, 011223
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH CRYPT 3 "8. August 2015" "" Linux\-Programmierhandbuch
.SH BEZEICHNUNG
crypt, crypt_r \- Passwort\- und Datenverschlüsselung
.SH ÜBERSICHT
.nf
\fB#define _XOPEN_SOURCE\fP /* siehe feature_test_macros(7) */
.br
\fB#include \fP
.sp
\fBchar *crypt(const char *\fP\fIkey\fP\fB, const char *\fP\fIsalt\fP\fB);\fP
.sp
\fB#define _GNU_SOURCE\fP /* Siehe feature_test_macros(7) */
.br
\fB#include \fP
.sp
\fBchar *crypt_r(const char *\fP\fIkey\fP\fB, const char *\fP\fIsalt\fP\fB,\fP
\fB struct crypt_data *\fP\fIdata\fP\fB);\fP
.fi
.sp
Linken Sie mit der Option \fI\-lcrypt\fP.
.SH BESCHREIBUNG
\fBcrypt\fP() 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.
.PP
\fIkey\fP ist das vom Benutzer eingegebene Passwort.
.PP
\fIsalt\fP ist eine aus zwei Zeichen bestehende Zeichenkette aus dem
Zeichenvorrat [\fBa\-zA\-Z0\-9./\fP]. Diese Zeichenkette wird dafür verwendet, den
Algorithmus auf eine von 4096 unterschiedliche Arten zu beeinflussen.
.PP
Aus den untersten sieben Bit jedes der ersten acht Zeichen von \fIkey\fP 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.
.PP
Warnung: Der Schlüsselraum besteht aus
.if t 2\s-2\u56\s0\d
.if n 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 \fBcrack\fP(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 \fBpasswd\fP(1)\-Programms, das automatisch während der Eingabe auf
leicht zu knackende Passwörter prüft, wird empfohlen.
.PP
Der DES\-Algorithmus selbst hat ein paar Eigenarten, mit denen die Verwendung
von \fBcrypt\fP(3) für etwas Anderes als Passwortverschlüsselung eine sehr
schlechte Wahl wird. Wenn Sie vorhaben, die \fBcrypt\fP()\-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.
\fBcrypt_r\fP() ist eine ablaufinvariante Version von \fBcrypt\fP(). Die Struktur,
auf die \fIdata\fP zeigt, wird für die Speicherung von Ergebnisdaten und
Buchhaltungsinformationen verwendet. Der Aufrufende sollte die Struktur
lediglich bereitstellen und \fIdata\->initialized\fP auf Null setzen, bevor
\fBcrypt_r\fP() erstmalig aufgerufen wird.
.SH RÜCKGABEWERT
Bei Erfolg wird ein Zeiger auf das verschlüsselte Passwort
zurückgegeben. Tritt ein Fehler auf, ist der Rückgabewert NULL.
.SH FEHLER
.TP
\fBEINVAL\fP
\fIsalt\fP hat das falsche Format.
.TP
\fBENOSYS\fP
.\" This level of detail is not necessary in this man page. . .
.\" .PP
.\" When encrypting a plain text P using DES with the key K results in the
.\" encrypted text C, then the complementary plain text P' being encrypted
.\" using the complementary key K' will result in the complementary encrypted
.\" text C'.
.\" .PP
.\" Weak keys are keys which stay invariant under the DES key transformation.
.\" The four known weak keys 0101010101010101, fefefefefefefefe,
.\" 1f1f1f1f0e0e0e0e and e0e0e0e0f1f1f1f1 must be avoided.
.\" .PP
.\" There are six known half weak key pairs, which keys lead to the same
.\" encrypted data. Keys which are part of such key clusters should be
.\" avoided.
.\" Sorry, I could not find out what they are.
.\""
.\" .PP
.\" Heavily redundant data causes trouble with DES encryption, when used in the
.\" .I codebook
.\" mode that
.\" .BR crypt ()
.\" implements. The
.\" .BR crypt ()
.\" interface should be used only for its intended purpose of password
.\" verification, and should not be used as part of a data encryption tool.
.\" .PP
.\" The first and last three output bits of the fourth S-box can be
.\" represented as function of their input bits. Empiric studies have
.\" shown that S-boxes partially compute the same output for similar input.
.\" It is suspected that this may contain a back door which could allow the
.\" NSA to decrypt DES encrypted data.
.\" .PP
.\" Making encrypted data computed using crypt() publicly available has
.\" to be considered insecure for the given reasons.
Die Funktion \fBcrypt\fP() wurde nicht implementiert, wahrscheinlich wegen
Export\-Beschränkungen der USA.
.TP
\fBEPERM\fP
\fI/proc/sys/crypto/fips_enabled\fP hat einen von Null verschiedenen Wert und
es wurde versucht, einen schwachen Verschlüsselungstyp wie DES zu verwenden.
.SH ATTRIBUTE
Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt
verwandten Ausdrücke.
.TS
allbox;
lb lb lb
l l l.
Schnittstelle Attribut Wert
T{
\fBcrypt\fP()
T} Multithread\-Fähigkeit MT\-Unsafe race:crypt
T{
\fBcrypt_r\fP()
T} Multithread\-Fähigkeit MT\-Safe
.TE
.SH "KONFORM ZU"
\fBcrypt\fP(): POSIX.1\-2001, POSIX.1\-2008, SVr4, 4.3BSD. \fBcrypt_r\fP() ist eine
GNU\-Erweiterung.
.SH ANMERKUNGEN
.SS "Anmerkungen zur Glibc"
Die Glibc2\-Version dieser Funktion unterstützt weitere
Verschlüsselungsalgorithmen.
Wenn \fIsalt\fP eine Zeichenkette ist, die mit den Zeichen »$\fIid\fP$« beginnt,
denen eine mit »$« abgeschlossene Zeichenkette folgt:
.RS
$\fIid\fP$\fIsalt\fP$\fIencrypted\fP
.RE
dann identifiziert \fIid\fP anstelle des DES\-Programms die
Verschlüsselungsmethode und legt fest, wie der Rest der Passwortzeichenkette
interpretiert wird. Die folgenden Werte von \fIid\fP werden unterstützt:
.RS
.TS
l l.
ID | Methode
_
1 | MD5
2a | Blowfish (nicht im Hauptentwicklungszweig der Glibc;
| in einigen Linux\-Distributionen hinzugefügt)
.\" openSUSE has Blowfish, but AFAICS, this option is not supported
.\" natively by glibc -- mtk, Jul 08
.\"
.\" md5 | Sun MD5
.\" glibc doesn't appear to natively support Sun MD5; I don't know
.\" if any distros add the support.
5 | SHA\-256 (seit Glibc 2.7)
6 | SHA\-512 (seit Glibc 2.7)
.TE
.RE
Also ist $5$\fIsalt\fP$\fIencrypted\fP ein SHA\-256\-codiertes Passwort und
$6$\fIsalt\fP$\fIencrypted\fP ist ein SHA\-512\-codiertes.
»\fIsalt\fP« steht für die bis zu 16 Zeichen, die »$\fIid\fP$« im Salt folgen. Der
verschlüsselte Teil der Passwortzeichenkette entspricht dem tatsächlich
berechneten Passwort. Die Länge dieser Zeichenkette ist festgelegt:
.TS
l l.
MD5 | 22 Zeichen
SHA\-256 | 43 Zeichen
SHA\-512 | 86 Zeichen
.TE
Die Zeichen in »\fIsalt\fP« und »\fIencrypted\fP« werden aus dem Vorrat
[\fBa\-zA\-Z0\-9./\fP] gewählt. In den MD5\- und SHA\-Implementierungen ist der
gesamte \fIkey\fP signifikant (anstelle nur der ersten acht Byte bei DES).
.SH "SIEHE AUCH"
\fBlogin\fP(1), \fBpasswd\fP(1), \fBencrypt\fP(3), \fBgetpass\fP(3), \fBpasswd\fP(5)
.SH KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.09 des Projekts
Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie
Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter \%https://www.kernel.org/doc/man\-pages/.
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer
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 .