Что лучший способ состоит в том, чтобы создать случайный хеш/строку?

Что лучший способ генерировать хеш в целях хранения сессии? Я ищу легкое, портативное решение.

46
задан Gajus 12 March 2014 в 14:51
поделиться

4 ответа

Вы можете использовать встроенные в PHP функции хэширования, sha1 и md5. Выберите одну, а не обе.

Можно подумать, что использование обеих функций, sha1(md5($pass)), будет решением проблемы. Использование обоих не сделает ваш пароль более безопасным, оно приводит к избыточности данных и не имеет особого смысла.

Взгляните на PHP Security Consortium: Password Hashing они дают хорошую статью со слабыми местами и улучшением безопасности с помощью хэширования.

Nonce означает "numbers used once ". Они используются в запросах для предотвращения несанкционированного доступа, они передают секретный ключ и проверяют ключ каждый раз, когда используется ваш код.

Вы можете посмотреть больше на PHP NONCE Library от FullThrottle Development

11
ответ дан 26 November 2019 в 20:14
поделиться

Может быть, uniqid () - это то, что вам нужно?

uniqid - Создать уникальный идентификатор

9
ответ дан 26 November 2019 в 20:14
поделиться

Я лично использую apache mod_unique_id для генерации случайного уникального числа для хранения моих сеансов. Его действительно легко использовать (если вы используете apache).

Для nonce посмотрите здесь http://en.wikipedia.org/wiki/Cryptographic_nonce , там даже есть ссылка на библиотеку PHP.

0
ответ дан 26 November 2019 в 20:14
поделиться

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

//md5 "emulation" using sha1
ini_set('session.hash_function', 1);
ini_set('session.hash_bits_per_character', 5);
0
ответ дан 26 November 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: