使用 Postfix / SASL 和 MySQL 时是否可以使用 MD5 密码加密来加密密码?目前,我的设置是使用 MySQL CRYPT() 函数,由于各种原因,它并不理想。
答案1
对的,这是可能的。
我猜你正在使用 libpam-mysql。你可以设置一个名为 crypt 的选项。
auth optional pam_mysql.so user=username passwd=password verbose=0 db=thedb table=user usercolumn=userName passwdcolumn=userPassword crypt=3
account required pam_mysql.so user=username passwd=password verbose=0 db=thedb table=user usercolumn=userName passwdcolumn=userPassword crypt=3
你也可以使用 auth required
然后在 mysql 中使用 MD5 加密密码。
您可以在自述文件和 /usr/share/doc/libpam-mysql 中找到该文档
我引用其中一部分:
墓穴(平原)
The method to encrypt the user's password: 0 (or "plain") = No encryption. Passwords stored in plaintext. HIGHLY DISCOURAGED. 1 (or "Y") = Use crypt(3) function. 2 (or "mysql") = Use MySQL PASSWORD() function. It is possible that the encryption function used by PAM-MySQL is different from that of the MySQL server, as PAM-MySQL uses the function defined in MySQL's C-client API instead of using PASSWORD() SQL function in the query. 3 (or "md5") = Use plain hex MD5
在 debian 中的 saslauthd 配置文件中,你必须设置,
MECHANISMS="pam"
不知道如何在另一个分布中设置它,但该过程必须像这样启动。
/usr/sbin/saslauthd -a pam
但我想你已经拥有它了。