обновление : похоже, что то, что я наивно пытаюсь сделать здесь, вручную добавить соль к паролю, не будет работать из-за способа работы алгоритма шифрования (см. Unix crypt с использованием SHA-256 и SHA-512 ), так что теперь это действительно не вопрос переполнения стека, а вопрос чисто о сбое сервера для функций MySQL 8. Оставив это здесь, на случай, если у кого-то еще возникнет эта проблема. Вы можете увидеть вопрос о сбое сервера здесь .
Здесь есть длинная предыстория, но вкратце я не могу получить MySQL 8 и Dovecot для генерации те же хеши SHA256, с той же солью и паролем. Я подозреваю, что это либо тривиальная ошибка, либо какая-то проблема со строковым кодированием (или, возможно, и то и другое).
NB Я задавал этот же вопрос о сбое сервера, так как оно показалось более подходящим, но не получаю никакой любви, и я вижу здесь несколько похожих вопросов, так что ...
Голубь:
$doveadm pw -s SHA256-CRYPT -p apassword
{SHA256-CRYPT}$5$h1JEsg1tmnTGS9Ub$Saoi1jr/uddYVD.n5p0hz70H9slnubpG7MQCkzpAiu4
Затем я хватаю эту соль (h1JEsg1tmnTGS9Ub
) и пытаюсь получить тот же вывод из MySQL 8:
SELECT CONCAT('$5$', 'h1JEsg1tmnTGS9Ub', '$', TO_BASE64(UNHEX(SHA2(CONCAT('apassword', 'h1JEsg1tmnTGS9Ub'), 256)))) WHERE true
$5$h1JEsg1tmnTGS9Ub$Vm9gPbWHuXt/zslurPQ7Nx0JLp1CphlBQbnL9R86XbM=
Как я уже упоминал, здесь, похоже, есть несколько похожих квестонов, но они либо с MySQL 5.x с использованием функции ENCRYPT
, который был удален в 8.0.3, или люди, кажется, решили сбросить соль и просто использовать SHA512 без соли. Мне кажется, что это должно быть легко, и все же ...
У кого-нибудь есть идеи о том, как получить MySQL 8 для генерации того же ha sh, что и doveadm, с тем же паролем и солью?
FWIW, я пробовал MySQL с и без TO_BASE64 и с и без UNHEX (я верю во все комбинации).
Спасибо!