Прямо сейчас я использую Zend Framework и бездельничаю с этим и phpunit. Вот моя дилемма.
Когда я создаю пользователя, я хэширую пароль в таблице пользователей. Я добавляю две соли, статическую из приложения и одну, которая генерируется случайным образом. Я использую функцию базы данных SHA, а затем UNHEX, чтобы сохранить пароль в двоичном столбце. Чтобы сообщить базе данных, как хэшировать пароль, я использую Zend_Db_Expr примерно так:
protected function _createPasswordDbExpression( $password )
{
$quoted = $this->getDbTable()->getAdapter()->quoteInto( 'UNHEX( SHA1( ? ) )', $password );
$binaryPassword = new Zend_Db_Expr( $quoted );
return $binaryPassword;
}
До сих пор я использовал наборы данных xml для определения ожидаемых результатов, но сейчас, с хешированными паролями, я не знаю, что делать.
Я вижу решение этой проблемы, но должен быть лучший способ.
Я мог бы предварительно хэшировать пароль или пароли и использовать его только во время тестирования и в моих XML-файлах.
Есть ли другое решение, которое могло бы быть лучше и более проверяемым?
Я не знаю точно, как этот двоичный столбец повлияет на вещи, когда phpunit пытается напрямую вставить «хешированный» пароль.