Что такое код mhash_keygen_s2k

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k — Generates a key

Описание

Generates a key according to the given hash, using an user prov >password.

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Список параметров

The hash ID used to create the key. One of the MHASH_hashname constants.

An user supplied password.

Must be different and random enough for every key you generate in order to create different keys. Because salt must be known when you check the keys, it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

The key length, in bytes.

Возвращаемые значения

Returns the generated key as a string, or FALSE on error.

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

mhash_keygen_s2k — Generates a key

Description

Generates a key according to the given hash , using an user prov >password .

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Parameters

The hash ID used to create the key. One of the MHASH_hashname constants.

An user supplied password.

Must be different and random enough for every key you generate in order to create different keys. Because salt must be known when you check the keys, it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

The key length, in bytes.

Return Values

Returns the generated key as a string, or FALSE on error.

User Contributed Notes

I looked into mhash and PHP source code and I’ve ported this function to pure PHP:

function keygen_s2k ( $hash , $password , $salt , $bytes )
<
$result = false ;

if ( extension_loaded ( ‘hash’ ) === true )
<
$times = $bytes / ( $block = strlen ( hash ( $hash , null , true )));

if ( $bytes % $block != 0 )
<
++ $times ;
>

Илон Маск рекомендует:  Что такое код gettime

for ( $i = 0 ; $i $times ; ++ $i )
<
$result .= hash ( $hash , str_repeat ( «\0» , $i ) . $salt . $password , true );
>
>

Correction to ray ferguson post,

As said in the doc : «mhash_keygen_s2k generates a key that is bytes long, from a user given password and use the specified hash algorithm to create the key.» if It wasn’t clear to anyone.

The non mhash function is good as long you do not need a key longer than native MD5 hash (16 bytes) it wont give you more.

So the non mhash function work OK but they ARE NOT the same thing.

Just try ray ferguson exemple asking for a 32 bytes key.

Returning a substring longer than the packed 16 bytes string won’t add anything to the string. Salted S2K algorithm does add to the key. So better use mhash lib or create something more alike the RFC 2440 specs.

I know the post is late on regard to Ray’s post but if it can help someone not waisting time like me.

// given random 8 bits of salt and a clear text password

$clear_pw = «p4ssw0rd» ;
$rand8bites4salt = substr(pack(«h*», md5(mt_rand())) , 0, 8);

mhash_keygen_s2k(MHASH_MD5, $clear_pw, $rand8bites4salt, 4) ;

//is the same as this

function myhash_keyge_s2k($pass, $salt, $bytes ) <
return substr(pack(«H*», md5($salt . $pass)), 0, $bytes);
>

myhash_keyge_s2k($clear_pw, $rand8bites4salt, 4);

// But the latter doesn’t require mhash libs.

Что такое код mhash_keygen_s2k

mhash_keygen_s2k — генерирует ключ/key.

Описание

string mhash_keygen_s2k (int hash, string password, string salt, int bytes)

mhash_keygen_s2k() генерирует ключ длиной bytes из заданного пользователем пароля. Это алгоритм Salted S2K, как специфицировано в документе OpenPGP (RFC 2440). Этот алгоритм будет использовать алгоритм специфицированного hash для создания ключа.
Параметр salt обязан отличаться и быть достаточно произвольным для каждого ключа, генерируемого вами, чтобы создавать разные ключи. Этот salt обязан быть известен, когда вы проверяете ключи; таким образом, неплохо будет присоединять ключ к нему. Salt имеет фиксированный размер в 8 байтов и будет заполняться нулями, если вы предоставите меньшее количество байтов.

Помните, что предоставляемые пользовательские пароли реально не подходят для использования в качестве ключей в алгоритмах криптографии, поскольку пользователи выбирают ключи, которые они могут ввести с клавиатуры. Эти пароли используют только от 6 до 7 бит на символ (или менее). Настоятельно рекомендуем использовать какую-нибудь трансформацию (вроде этой функции) предоставляемого пользователем ключа.


Назад Оглавление Вперёд
mhash_get_hash_name Вверх mhash

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

mhash_keygen_s2k — Генерация ключа

Описание

Генерирует ключ в соответствии с заданным hash и указанным паролем password .

Используется алгоритм S2K с солью, как описано в документе OpenPGP (» RFC 2440).

Помните, что пользовательские пароли не являются подходящими ключами для криптографических алгоритмов, так как обычно они как минимум набираемы на клавиатуре. Такие пароли используют только 6-7 бит (или меньше) на символ. Так что такие пароли крайне рекомендуется предварительно преобразовывать (например этой функцией).

Список параметров

Идентификатор хеша. Одна из констант MHASH_hashname .

Должна быть разной и достаточно случайной для каждого создаваемого ключа. Так как salt должна быть известна при проверке ключа, то хорошей идеей будет добавить ее к ключу. Соль имеет фиксированный размер в 8 байт и будет дополнена нулями, если заданный параметр будет короче.

Длина ключа в байтах.

Возвращаемые значения

Возвращает строку с ключем или FALSE в случае ошибки.

Альтернатива mhash_keygen_s2k()

mcrypt_encrypt Страница руководства говорит, что:

Рекомендуется использовать mhash функции для создания ключа из строки.

Но введение mhash Руководство говорит, что:

Примечание. Это расширение устарело в Hash.

Тем не менее, самое близкое, что я мог найти, это довольно полезное mhash_keygen_s2k() функция была hash_pbkdf2() функция. Однако я даже не уверен, подходит ли он для этой работы, поскольку он существует только в SVN.

Итак, могу ли я положиться на mhash продление или оно со временем станет устаревшим и отброшено? Если да, есть ли альтернативная встроенная функция или мне нужно самому реализовывать алгоритм Salted S2K?

1 ответ

В итоге я заглянул в исходный код mhash, портировав его на PHP:

Если кто-нибудь знает какую-либо альтернативную встроенную функцию, я все равно хотел бы услышать об этом.

php — Альтернатива mhash_keygen_s2k()

Для создания ключа из строки рекомендуется использовать функции mhash .

Примечание. Это расширение устарело Hash.

Однако самым близким, что я мог бы найти в довольно полезной функции mhash_keygen_s2k() была функция hash_pbkdf2() . Тем не менее, я даже не уверен, соответствует ли это задаче, поскольку она существует только в SVN.

Итак, могу ли я полагаться на расширение mhash , или оно в конечном итоге станет устаревшим и отброшенным? Если да, есть ли какая-либо альтернативная встроенная функция или мне нужно реализовать алгоритм Salted S2K?

    2 1
  • 23 апр 2020 2020-04-23 11:30:44
  • Alix Axel

1 ответ

Я закончил тем, что заглянул в исходный код mhash, портируя это на PHP:

Если кто-нибудь знает какую-либо альтернативную встроенную функцию, мне все равно хотелось бы услышать об этом.

Альтернатива mhash_keygen_s2k ()

Рекомендуется использовать функции mhash для создания ключа из строки.

Но введение в руководство по mhash говорит о том, что:

Примечание. Это расширение устарело в Hash.

Однако ближе всего к довольно полезной функции hash_pbkdf2() я смог найти функцию hash_pbkdf2() . Однако я даже не уверен, подходит ли он для этой работы, поскольку он существует только в SVN.

Итак, могу ли я рассчитывать на расширение mhash , или оно в конечном итоге станет устаревшим и будет mhash ? Если да, есть ли альтернативная встроенная функция или мне нужно самому реализовывать алгоритм Salted S2K?

1 ответ

В итоге я заглянул в исходный код mhash, портировав его на PHP:

Если кто-нибудь знает какую-либо альтернативную встроенную функцию, я все равно хотел бы услышать об этом.

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k — Generates a key

Description

Generates a key according to the hash given a user prov >password .

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Parameters

The hash id used to create the key. One of the MHASH_XXX constants.

User supplied password.

Must be different and random enough for every key you generate in order to create different keys. That salt must be known when you check the keys, thus it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

The key length, in bytes.

Return Values

Returns the generated key as a string, or FALSE on error.

Что такое код mhash_keygen_s2k

mhash_keygen_s2k — генерирует ключ/key.

Описание

string mhash_keygen_s2k (int hash, string password, string salt, int bytes)

mhash_keygen_s2k() генерирует ключ длиной bytes из заданного пользователем пароля. Это алгоритм Salted S2K, как специфицировано в документе OpenPGP (RFC 2440). Этот алгоритм будет использовать алгоритм специфицированного hash для создания ключа.
Параметр salt обязан отличаться и быть достаточно произвольным для каждого ключа, генерируемого вами, чтобы создавать разные ключи. Этот salt обязан быть известен, когда вы проверяете ключи; таким образом, неплохо будет присоединять ключ к нему. Salt имеет фиксированный размер в 8 байтов и будет заполняться нулями, если вы предоставите меньшее количество байтов.

Помните, что предоставляемые пользовательские пароли реально не подходят для использования в качестве ключей в алгоритмах криптографии, поскольку пользователи выбирают ключи, которые они могут ввести с клавиатуры. Эти пароли используют только от 6 до 7 бит на символ (или менее). Настоятельно рекомендуем использовать какую-нибудь трансформацию (вроде этой функции) предоставляемого пользователем ключа.

FPublisher

Web-технологии: База знаний

Документация PHP

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k — Generates a key

Описание

string mhash_keygen_s2k ( int $hash , string $password , string $salt , int $bytes )

Generates a key according to the hash given a user prov >password .

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Список параметров

The hash id used to create the key. One of the MHASH_XXX constants.

User supplied password.

Must be different and random enough for every key you generate in order to create different keys. That salt must be known when you check the keys, thus it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

The key length, in bytes.

Возвращаемые значения

Returns the generated key as a string, or FALSE on error.

Илон Маск рекомендует:  letter-spacing в CSS
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL