簡體   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