email — Использование php и doveadm для создания пароля

Я создал страницу регистрации в php с бэкэндом mysql.
Если пользователь вводит свой новый пароль, он должен стать SHA512-CRYPT через doveadm.

Это то, что я имею сейчас,

$password=hash('sha256', $pass);

Но я хочу создать хеш пароля с помощью doveadm из-за моего почтового сервера:

$password=(/usr/bin/doveadm pw -s SHA512-CRYPT -p "$pass")

Но это не похоже на работу, как я могу реализовать эту команду «doveadm» в php?

0

Решение

Вы должны позвонить с shell_exec метод:

$password = shell_exec('/usr/bin/doveadm pw -s SHA512-CRYPT -p '. $pass);
0

Другие решения

Избегать использования shell_exec опасно, если вы используете конфигурацию по умолчанию для dovecot в качестве команды в вашем примере, тогда dovecot создает хеш с 16 символами (байтами) соли, в результате вы можете использовать функцию php crypt для получения того же самого результат и вы избежите использования shell_exec

см. пример ниже

echo crypt("1234567890",'$6$Wh4t3v3rS4ltH3re'); //$6$ This part declares the SHA 512 and after the second $ must be 16 chars salt

даст вам совместимый результат с помощью команды doveadm pw

0

По вопросам рекламы [email protected]