mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
Update to English password-hash.xml
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: c6b95280cf10b6b252683ee7d86416c4c27deb4e Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: 5bc68add3da3cd18c40f851e944b15095d3a26aa Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xml:id="function.password-hash" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
@ -11,12 +11,12 @@
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<type>string</type><methodname>password_hash</methodname>
|
||||
<methodparam><type>string</type><parameter>password</parameter></methodparam>
|
||||
<methodparam><modifier role="attribute">#[\SensitiveParameter]</modifier><type>string</type><parameter>password</parameter></methodparam>
|
||||
<methodparam><type class="union"><type>string</type><type>int</type><type>null</type></type><parameter>algo</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>array</type><parameter>options</parameter><initializer>[]</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Функция <function>password_hash</function> создаёт хеш пароля, используя сильный необратимый алгоритм хеширования.
|
||||
Функция <function>password_hash</function> создаёт хеш пароля через сильный необратимый алгоритм хеширования.
|
||||
</para>
|
||||
<simpara>
|
||||
Поддерживаются следующие алгоритмы:
|
||||
@ -25,7 +25,7 @@
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>PASSWORD_DEFAULT</constant> — будет выбран алгоритм bcrypt (по умолчанию с PHP 5.5.0).
|
||||
<constant>PASSWORD_DEFAULT</constant> — функция выберет алгоритм bcrypt (по умолчанию с PHP 5.5.0).
|
||||
Обратите внимание, алгоритм может измениться на более
|
||||
сильный, когда такой добавится в PHP. При изменении алгоритма и длина результата
|
||||
также может измениться. Поэтому длину поля для хранения
|
||||
@ -34,7 +34,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>PASSWORD_BCRYPT</constant> — будет выбран алгоритм
|
||||
<constant>PASSWORD_BCRYPT</constant> — функция выберет алгоритм
|
||||
<constant>CRYPT_BLOWFISH</constant>. Генерирует стандартный хеш с идентификатором "$2y$",
|
||||
совместимый с тем, который генерирует функция <function>crypt</function>.
|
||||
В результате будет сгенерирована строка длиной 60 символов&return.falseforfailure;.
|
||||
@ -42,13 +42,13 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>PASSWORD_ARGON2I</constant> — будет выбран алгоритм хеширования Argon2i.
|
||||
<constant>PASSWORD_ARGON2I</constant> — функция выберет алгоритм хеширования Argon2i.
|
||||
Этот алгоритм будет доступен, только если PHP собран с поддержкой Argon2.
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>PASSWORD_ARGON2ID</constant> — будет выбран алгоритм хеширования Argon2id.
|
||||
<constant>PASSWORD_ARGON2ID</constant> — функция выберет алгоритм хеширования Argon2id.
|
||||
Этот алгоритм будет доступен, только если PHP собран с поддержкой Argon2.
|
||||
</simpara>
|
||||
</listitem>
|
||||
@ -66,15 +66,15 @@
|
||||
автоматическое создание соли.
|
||||
</para>
|
||||
<para>
|
||||
Если не задано, то функция <function>password_hash</function> будет генерировать
|
||||
Если не задали, то функция <function>password_hash</function> будет генерировать
|
||||
случайную соль для каждого хешируемого пароля. Это предпочтительный
|
||||
режим работы.
|
||||
</para>
|
||||
<warning>
|
||||
<para>
|
||||
Эта опция объявлена устаревшей.
|
||||
Эту опцию объявили устаревшей.
|
||||
Рекомендуется использовать автоматически генерируемую соль.
|
||||
Начиная с PHP 8.0.0 явно заданная соль игнорируется.
|
||||
Начиная с PHP 8.0.0 соль, которую задали явно, игнорируется.
|
||||
</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
@ -93,8 +93,8 @@
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<simpara>
|
||||
Поддерживаемые опции для <constant>PASSWORD_ARGON2I</constant> и
|
||||
<constant>PASSWORD_ARGON2ID</constant>:
|
||||
Поддерживаемые опции для <constant>PASSWORD_ARGON2I</constant>
|
||||
и <constant>PASSWORD_ARGON2ID</constant>:
|
||||
</simpara>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
@ -160,8 +160,8 @@
|
||||
&password.parameter.options;
|
||||
</para>
|
||||
<para>
|
||||
Если не задано, то будет использована стандартная стоимость, и соль будет
|
||||
сгенерирована автоматически.
|
||||
Если не задали, функция использует стандартная стоимость, и сгенерирует соль
|
||||
автоматически.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -171,12 +171,12 @@
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает хешированный пароль.
|
||||
Функция возвращает хешированный пароль.
|
||||
</para>
|
||||
<para>
|
||||
Выбранный алгоритм, стоимость и соль будут возвращены как часть хеша.
|
||||
Таким образом, информация, необходимая для проверки хеша, будет в него
|
||||
включена. Это позволит функции <function>password_verify</function> проверять
|
||||
Алгоритм, который выбрала функция, стоимость и соль возвращаются как часть хеша.
|
||||
Поэтому информацию, которая требуется для проверки хеша, функция включит
|
||||
в хеш. Это позволит функции <function>password_verify</function> проверять
|
||||
хеш без отдельного хранения информации о соли и алгоритме.
|
||||
</para>
|
||||
</refsect1>
|
||||
@ -196,8 +196,8 @@
|
||||
<row>
|
||||
<entry>8.0.0</entry>
|
||||
<entry>
|
||||
<function>password_hash</function> больше не возвращает значение &false; в случае возникновения ошибки.
|
||||
Вместо этого будет выброшено исключение <classname>ValueError</classname>,
|
||||
Функция <function>password_hash</function> больше не возвращает значение &false;, если возникла ошибка.
|
||||
Вместо этого функция выбросит исключение <classname>ValueError</classname>,
|
||||
если алгоритм хеширования пароля недействителен, или <classname>Error</classname>,
|
||||
если хеширование пароля не удалось из-за неизвестной ошибки.
|
||||
</entry>
|
||||
@ -205,14 +205,14 @@
|
||||
<row>
|
||||
<entry>8.0.0</entry>
|
||||
<entry>
|
||||
Параметр <parameter>algo</parameter> теперь допускает значение &null;.
|
||||
Параметр <parameter>algo</parameter> теперь принимает значение &null;.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>7.4.0</entry>
|
||||
<entry>
|
||||
Параметр <parameter>algo</parameter> теперь ожидает строку (&string;), но всё ещё принимает
|
||||
число (&integer;) для обратной совместимости.
|
||||
целое число (&integer;) для обратной совместимости.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -224,13 +224,13 @@
|
||||
<row>
|
||||
<entry>7.3.0</entry>
|
||||
<entry>
|
||||
Добавлена поддержка алгоритма хеширования паролей Argon2id с помощью <constant>PASSWORD_ARGON2ID</constant>.
|
||||
Добавили поддержку алгоритма хеширования паролей Argon2id через алгоритм <constant>PASSWORD_ARGON2ID</constant>.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>7.2.0</entry>
|
||||
<entry>
|
||||
Добавлена поддержка хеширующего алгоритма Argon2i с помощью <constant>PASSWORD_ARGON2I</constant>.
|
||||
Добавили поддержку хеширующего алгоритма Argon2i через алгоритм <constant>PASSWORD_ARGON2I</constant>.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
@ -243,12 +243,13 @@
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>password_hash</function></title>
|
||||
<title>Пример использования функции <function>password_hash</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Мы просто хотим захешировать пароль с настройками по умолчанию.
|
||||
* Просто хотим захешировать пароль с настройками по умолчанию.
|
||||
* Значит, будет выбран алгоритм BCRYPT и результат будет длиной 60 символов.
|
||||
*
|
||||
* Помните, что алгоритм по умолчанию может измениться в будущем, так что
|
||||
@ -256,6 +257,7 @@
|
||||
* смогла хранить более 60 символов (а лучше 255)
|
||||
*/
|
||||
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
@ -269,18 +271,23 @@ $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>password_hash</function> с ручным заданием стоимости</title>
|
||||
<title>
|
||||
Пример использования функции <function>password_hash</function> с ручным указанием стоимости
|
||||
</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Тут мы увеличиваем алгоритмическую стоимость BCRYPT до 12.
|
||||
* Тут увеличиваем алгоритмическую стоимость BCRYPT до 12.
|
||||
* Но это никак не скажется на длине полученного результата, она останется 60 символов
|
||||
*/
|
||||
$options = [
|
||||
'cost' => 12,
|
||||
];
|
||||
|
||||
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options);
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
@ -299,8 +306,9 @@ $2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Данный код замерит скорость выполнения операции с разными значениями алгоритмической сложности хеширования
|
||||
* Этот код замерит скорость выполнения операции с разными значениями алгоритмической сложности хеширования
|
||||
* на вашем сервере и определит
|
||||
* его максимальное значение, не приводящее к деградации производительности. Хорошее базовое
|
||||
* значение — 10, но если ваш сервер достаточно мощный, то можно
|
||||
@ -311,6 +319,7 @@ $2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K
|
||||
$timeTarget = 0.350; // 350 миллисекунд
|
||||
|
||||
$cost = 8;
|
||||
|
||||
do {
|
||||
$cost++;
|
||||
$start = microtime(true);
|
||||
@ -319,6 +328,7 @@ do {
|
||||
} while (($end - $start) < $timeTarget);
|
||||
|
||||
echo "Оптимальная стоимость: " . $cost;
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
@ -332,11 +342,15 @@ echo "Оптимальная стоимость: " . $cost;
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования функции <function>password_hash</function> с Argon2i</title>
|
||||
<title>
|
||||
Пример использования функции <function>password_hash</function> с алгоритмом Argon2i
|
||||
</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
echo 'Хеш Argon2i: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
|
Reference in New Issue
Block a user