我需要直接在MySQL資料庫中更改postfix用戶帳戶郵箱的密碼;但是我不知道使用的格式。
這是表格:
SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username | password |
+------------------+------------------------------------+
| [email protected] | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+
它是什麼格式?如何改變呢?
答案1
$1$
密碼欄位開頭的 暗示它是 MD5 雜湊值。
要在 MD5 雜湊中加密密碼,您可以使用該openssl passwd
命令。
從人openssl:
passwd 產生雜湊密碼。
和來自openssl passwd --help
:
-1 基於MD5的密碼演算法
-stdin 從stdin讀取密碼
因此,要產生 MD5 雜湊值,請使用一個簡短的 bash 範例:
#/bin/bash
PASSWORD="test123"
MD5=`echo $PASSWORD | openssl passwd -1 -stdin`
運行它,您將得到預期的加密密碼作為輸出:
$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/
因此,要將 MySQL 資料庫中的密碼變更為“test123”,請在 MySQL 提示字元中執行下列操作:
USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="[email protected]";
變更立即生效,使用者將在下次造訪郵箱時注意到變更。