контрольная сумма passlib не сверяется с SHA2 MySQL - PullRequest
0 голосов
/ 10 июля 2019

Я использую vernemq для авторизации пользователей из базы данных с использованием алгоритма SHA256.Я замечаю, что при создании новой записи в таблице с помощью функции buildin mqsql SHA2,

INSERT INTO vmq_auth_acl 
    (mountpoint, client_id, username, 
     password, publish_acl, subscribe_acl)
SELECT 
    '', 'newUser2', 'newUser2', SHA2("CJJPL9", 256), 
     '[{"pattern":"botOut"}] ', 
     '[{"pattern":"botIn/#"}]';

, которая генерирует хеш-значение примерно так 54d0e30d0a00d86451a3353a2123fc1f006faaba6b55ef0d168390f26cbab82a, и сервер Vernemq успешно проверяет этого пользователя при входе в систему с использованием CJJPL9пароль.

Но когда я добавляю эту запись в эту таблицу из кода Python, используя библиотеку passlib sha256_crypt.encrypt("CJJPL9"), которая генерирует хэш следующим образом $5$rounds=80000$wnsT7Yr92oJoP28r$cKhJImk5mfuSKV9b3mumNzlbstFUplKtQXXMo4G6Ep5.Я знаю, что из-за соли хэши будут отличаться, но есть четкое различие в форматировании обоих хэшей, и в результате сервер verneMQ не может проверить учетные данные для этого пользователя. форматирование библиотеки passlib говорит, что она хранит только 43 символа из 256-битной контрольной суммы.Я также попытался протестировать, сохранив только часть контрольной суммы строки хеша passlib, но все равно не повезло.

Я хочу знать, в чем разница между шифрованием MySQL SAH2("CJJPL9", 256) и sha256_crypt.encrypt("CJJPL9").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...