繁体   English   中英

使用php和doveadm创建密码

[英]Using php and doveadm to create password

我已经在mysql后端的php中创建了一个注册页面。 如果用户正在输入新密码,则该密码应通过doveadm变为SHA512-CRYPT。

这就是我现在所拥有的

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

但是由于我的邮件服务器,我想用doveadm创建密码哈希:

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

但这似乎不起作用,如何在php中实现此“ doveadm”命令?

您必须使用shell_exec方法调用它:

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

避免使用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命令兼容的结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM