2013-02-23 5 views
0

Является ли mysql5 algoritm SHA-1 (SHA-1 ($ pass))?Генератор хэш-памяти Mysql5 VBA

Тогда я пытаюсь этот http://vb.wikia.com/wiki/SHA-1.bas скрипт, с функцией =SHA1HASH(SHA1HASH("test")) я получаю c4033bff94b567a190e33faa551f411caef444f2 но MySQL5 хэш должен быть 94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29

Как преобразовать строку в MySQL5 хэш в VBA?

enter image description here

Я обнаружил, почему это hapens,

потому что Sha1 предусмотрено в Hex, но MySQL5 в двоичном

+0

Вы уверены, что $ pass = "test"? ВЫБРАТЬ SHA1 (SHA1 («тест»)) = c4033bff94b567a190e33faa551f411caef444f2 –

+0

Да я уверен http://i.stack.imgur.com/rnpfI.png –

+0

, что вы использовали, чтобы вычислить следующий хэш: 94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 –

ответ

1

Похоже строки 94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 был сгенерирован с помощью функции MySQL PASSWORD().

SELECT PASSWORD("test") /* *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 */ 

В соответствии с рекомендациями документации MySQL, если вам нужно сохранить все, что хэш-код в Excel вам необходимо изменить свой первоначальный процесс хеширования, чтобы использовать что-то вроде SHA1.

Из документации по MySQL: http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html#function_password Функция PASSWORD() используется системой аутентификации в MySQL Server; вы не должны использовать его в своих приложениях. Для этой цели рассмотрим MD5() или SHA1().

+0

Я не хочу ничего менять, я хочу получить * 94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 из строкового теста в EXCEL VBA –

+1

Почему вы хотите получить этот конкретный хеш - это собственный метод хеширования, используемый MySQL 5 для генерации внутренних хэшей для MySQL. В собственной документации рекомендуется не использовать его. Если вы еще не прошли необратимый маршрут, я настоятельно рекомендую вам перейти на непатентованный вариант. Если вам НЕОБХОДИМО использовать функцию MySQL PASSWORD(), вам необходимо установить соединение с локальным или удаленным сервером MySQL с вашего модуля VBA, запустите следующий SQL 'SELECT PASSWORD (« test »)' и получите результат , –

+0

Я уже сгенерировал пароли в хэшах Mysql5 из паролей, я просто хочу сравнить, был ли пароль изменен –