2016-08-12 9 views
1

Я использую SMF. В паролях SMF, сохраненных в mysql, как:SHA1 не соответствует

sha1(usernamepassword); 

Некоторые из хешей отлично работают. Но другие хеши, которые включают специальные символы, такие как «öüşığ» и пространство и т. Д., Не совпадают.

Например «Аксак temüraga» должен быть преобразован в sha1 как «4b4eb0eed79356eb56eb9058e6dea20d71e48e3c», но оно преобразуется в sha1 как «c4aa8328bf5ec76cfc0416fd7ec40f8dea7f3d62»

+1

скорее всего проблема с кодировкой. –

+0

Чтобы быть ясным, я пытаюсь сделать внешний логин для своего форума, но я думаю, что я ошибся со специальными символами. –

+0

Проконсультируйтесь с [Как поддерживать UTF-8 полностью в веб-приложении] (http://stackoverflow.com/questions/279170/how-to-support-utf-8-completely-in-a-web-application) - Раньше известный как * «UTF-8 на всем пути ...» * –

ответ

1

Поскольку вы пытаетесь создать внешний вход для SMF форума, то вы должны оставаться с хэшированием, предоставляемым SMF.

О вашей проблеме вы должны взглянуть на файл установки SMF Sources\LogInOut.php, чтобы проверить, как SMF создает логин.

Затем вы можете использовать ту же технику для своего внешнего входа.

+1

Затем они должны сменить сервисы ;-) Любой, кто использует sha1 в этот день и возраст, должен быть закрыт или переписан, чтобы учесть проблемы безопасности «этого века». –

+1

Не только меняет службы, но и осуществляет миграцию. Вы знаете, никто не любит вещи, которые нарушают обратную совместимость. Я думаю, что миграция - это боль, а не изменение хеширования :) – Whiteulver

+0

^очень хорошая точка. –