Я использую Zend_Auth
с setCredentialTreatment
, чтобы установить метод хэша и соль. Я вижу, что все примеры делают что-то вроде этого, где salt
представляется в виде текста.Zend_Auth setCredentialTreatment
-.> SetCredentialTreatment ('? SHA1 (CONCAT (соль))
но моя соль хранится в базе данных я мог бы получить его первым затем использовать его в setCredentialTreatment
, но есть как я мог определить его непосредственно в качестве имени поля, так setCredentialTreatment
бы знать, чтобы получить его из этого поля? вроде того, как мы определяем имя поля для имени пользователя или пароля
->setCredentialColumn('password')
побочный вопрос я что я хотел бы использовать SHA512 не SHA1. Возможно ли это или недоступно? Все примеры, которые я вижу, используют SHA1.
Я должен сказать, что я довольно новичок в zend и переношу существующее приложение, поэтому, пожалуйста, пройдите на меня с ответами.
PHP поддерживает SHA512 через расширение хеш: хэш («SHA512», «некоторый текст хэш») ; –
На самом деле в исходном PHP я использую 'hash_hmac ('sha512')', но не определяет новый адаптер, немного перегруженный для этого. Сколько строк кода будет определять новый адаптер? Я не могу сказать со страницы, потому что они обрезают код. – jblue
Это двухэтапный процесс загрузки соли сначала для хэширования на PHP, что делает ваше требование немного обычным. Вы можете расширить Zend_Auth_Adapter_DbTable, чтобы не требовалось много кода. Я отредактировал свой ответ с примером, чтобы вы начали - код полностью не тестировался. Заменить $ hash = ''; часть с вашим кодом hash_hmac(). –