mirror of
https://github.com/php/doc-de.git
synced 2026-03-26 00:02:18 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/de/trunk@297032 c90b9560-bf6c-de11-be94-00142212c4b1
268 lines
7.9 KiB
XML
268 lines
7.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: sammywg Status: ready -->
|
|
|
|
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.crypt">
|
|
<refnamediv>
|
|
<refname>crypt</refname>
|
|
<refpurpose>Einweg-String-Verschlüsselung (Hashbildung)</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>string</type><methodname>crypt</methodname>
|
|
<methodparam><type>string</type><parameter>str</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>salt</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
<function>crypt</function> gibt einen Hash-String zurück, der unter
|
|
Verwendung des <abbrev>DES</abbrev>-basierenden Algorithmus Unix-Standard-Verschlüsselungsalgorithmus
|
|
erstellt wurde. Dieser Algorithmus muss auf dem System verfügbar sein.
|
|
</para>
|
|
<para>
|
|
Einige Betriebssystem unterstützen mehr als eine Methode zur
|
|
Verschlüsselung. So wird manchmal der DES- durch einen
|
|
MD5-Algorithmus ersetzt. Der verwendete Schlüssel wird durch das
|
|
Salt-Argument bestimmt. Zum Installationszeitpunkt untersucht PHP die
|
|
vorhandenen Möglichkeiten und wird, abhängig vom Ergebnis dieser
|
|
Prüfung, auch andere Schlüssel-Typen zulassen. Wird kein Salt
|
|
unterstützt, erzeugt PHP per Voreinstellung einen 2-Zeichen
|
|
DES-Salt, es sei denn, auf ihrem System ist MD5 der Standardverschlüsselungstyp.
|
|
In diesem Fall wird PHP einen zufälligen MD5-kompatiblen Salt generieren.
|
|
PHP setzt eine Konstante namens <constant>CRYPT_SALT_LENGTH</constant>,
|
|
die Ihnen sagt, ob ihr System einen regulären 2-Zeichen-Salt oder den
|
|
längeren 12-Zeichen-Salt unterstützt.
|
|
</para>
|
|
<para>
|
|
Die Standard-DES-Verschlüsselung <function>crypt</function>
|
|
enthält den Salt als erste 2 Zeichen der Ausgabe. Ebenso werden nur die ersten
|
|
acht Zeichen von <parameter>str</parameter> berücksichtigt; verwenden Sie also
|
|
einen längeren String, der mit den gleichen 8 Buchstaben beginnt, so erhalten
|
|
Sie denselben Rückgabewert (sofern Sie ebenfalls den gleichen Salt nutzen).
|
|
</para>
|
|
<simpara>
|
|
Auf Systemen, wo die crypt()-Funktion mehrere Verschlüsselungsarten
|
|
unterstützt, werden die folgenden Konstanten auf 0 oder 1
|
|
gesetzt, je nachdem, ob der entsprechende Typ verfügbar ist:
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CRYPT_STD_DES</constant> - Standard DES-Schlüssel mit 2-Zeichen-Salt
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CRYPT_EXT_DES</constant> - Erweiterte DES-basierte Verschlüsselung
|
|
mit einem 9-Zeichen-Salt
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CRYPT_MD5</constant> - MD5-Verschlüsselung mit 12-Zeichen-Salt,
|
|
beginnend mit $1$
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CRYPT_BLOWFISH</constant> - Blowfish-Verschlüsselung mit
|
|
16-Zeichen-Salt, beginnend mit $2$ oder $2a$
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<note>
|
|
<para>
|
|
Seit PHP 5.3.0 enthält PHP eine eigene Implementation und verwendet diese,
|
|
wenn das System einen oder mehrere der Algorithmen nicht unterstützt.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>str</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Die zu verschlüsselnde Zeichenkette.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>salt</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Ein optionaler Salt-String, der die Schlüsselbasis bildet. Sofern nicht
|
|
angegeben, wird von PHP ein zufälliger Wert bei jedem Aufruf der Funktion
|
|
generiert.
|
|
</para>
|
|
<para>
|
|
Wenn Sie das gegebene Salt benutzen, sollten Sie beachten, dass
|
|
dieser Wert nur einmal bestimmt wird. Rufen Sie diese Funktion nun
|
|
mehrmals auf, beeinträchtigt das nicht nur das Ergebnis, sondern
|
|
unter Umständen auch die Sicherheit.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Gibt die verschlüsselte Zeichenkette zurück.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<para>
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>5.3.0</entry>
|
|
<entry>
|
|
PHP enthält jetzt eine eigene Implementation der MD5-Crypt, Standard DES,
|
|
Extended DES und des Blowfish-Algorithmus und verwendet diese, wenn das
|
|
System eine oder mehrere der Algorithmen nicht unterstützt.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title><function>crypt</function>-Beispiele</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$passwort = crypt('mein_Pwd'); // Der Salt wird automatisch generiert
|
|
|
|
/* Sie sollten das vollständige Ergebnis von crypt() als Salt zum
|
|
Passwort-Vergleich übergeben, um Problemen mit unterschiedlichen
|
|
Hash-Algorithmen vorzubeugen. (Wie bereits ausgeführt, verwendet
|
|
ein Standard-DES-Passwort-Hash einen 2-Zeichen-Salt, ein
|
|
MD5-basierter hingegen nutzt 12 Zeichen. */
|
|
if (crypt($benutzer_eingabe, $passwort) == $passwort) {
|
|
echo "Passwort stimmt überein!";
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Verwendung von <function>crypt</function> für htpasswd</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Passwort setzen
|
|
$passwort = 'mein_Pwd';
|
|
|
|
// Hash mit automatisch erstelltem Salt generieren
|
|
$hash = crypt($passwort);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Verwendung von <function>crypt</function> mit verschiedenen Verschlüsselungsarten</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
if (CRYPT_STD_DES == 1) {
|
|
echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
|
|
}
|
|
|
|
if (CRYPT_EXT_DES == 1) {
|
|
echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
|
|
}
|
|
|
|
if (CRYPT_MD5 == 1) {
|
|
echo 'MD5: ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
|
|
}
|
|
|
|
if (CRYPT_BLOWFISH == 1) {
|
|
echo 'Blowfish: ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs.similar;
|
|
<screen>
|
|
<![CDATA[
|
|
Standard DES: rl.3StKT.4T8M
|
|
Extended DES: _J9..rasmBYk8r9AiWNc
|
|
MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0
|
|
Blowfish: $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
<note>
|
|
<simpara>
|
|
Es existiert keine decrypt Funktion, da <function>crypt</function>
|
|
eine Einweg-Verschlüsselung ist.
|
|
</simpara>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>md5</function></member>
|
|
<member>Die <link linkend="ref.mcrypt">Mcrypt</link>-Erweiterung</member>
|
|
<member>Lesen Sie die Man-Pages ihres Unix-Systems, wenn Sie weitere
|
|
Informationen zu Crypt benötigen.</member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|