Что лучший способ генерировать хеш в целях хранения сессии? Я ищу легкое, портативное решение.
Вы можете использовать встроенные в PHP функции хэширования, sha1
и md5
. Выберите одну, а не обе.
Можно подумать, что использование обеих функций, sha1(md5($pass))
, будет решением проблемы. Использование обоих не сделает ваш пароль более безопасным, оно приводит к избыточности данных и не имеет особого смысла.
Взгляните на PHP Security Consortium: Password Hashing они дают хорошую статью со слабыми местами и улучшением безопасности с помощью хэширования.
Nonce означает "numbers used once ". Они используются в запросах для предотвращения несанкционированного доступа, они передают секретный ключ и проверяют ключ каждый раз, когда используется ваш код.
Вы можете посмотреть больше на PHP NONCE Library от FullThrottle Development
Я лично использую apache mod_unique_id для генерации случайного уникального числа для хранения моих сеансов. Его действительно легко использовать (если вы используете apache).
Для nonce посмотрите здесь http://en.wikipedia.org/wiki/Cryptographic_nonce , там даже есть ссылка на библиотеку PHP.
Я обычно не управляю вручную идентификаторами сессий. Я видел, что что-то в этом роде рекомендовалось для того, чтобы немного смешать вещи, но я никогда не использовал это сам, так что я не могу подтвердить, что это лучше или хуже, чем по умолчанию (обратите внимание, что это для использования с автогеном, а не с ручным управлением).
//md5 "emulation" using sha1
ini_set('session.hash_function', 1);
ini_set('session.hash_bits_per_character', 5);