這2天在思考 LDAP 的一個密碼的問題,先前我們請廠商開發程式,可以讓我批次塞資料到 LDAP Server 裡面
但是最近發現了一個小問題,當我用 PHP 去將 LDAP 裡每筆 Entry 抓出來後,發現密碼的資料被完整的抓了出來
也就是若當初我密碼給 123456 ,LDAP 就將 123456 完整抓出來 ~ 按照常理說,這是不合邏輯的
密碼應該是經過加密後再存進去才可以 ~
今天在酷學園詢問了一篇文章,才大概了解若想要讓密碼是以加密後的型態存進去該怎麼做 ( 感謝 Twu2 學長 )
答案是在塞入 LDAP 的時候就要做好加密的動作了!也就是我的 userPassword 的屬性值必須先加密,可以用2種方式 ( 以 MD5 為例 )
方法1:
在系統內產生
# slappasswd -h "{MD5}"
New password: ( 輸入新密碼 )
Re-enter new password: ( 再確認一次 )
把產生出來的值複製下來,貼到要塞入的 LDIF 裡面就可以了
方法2:
利用 PHP 產生新密碼
$newpass = "明文的密碼";
$newpassword = "{MD5}".base64_encode(pack("H*",md5($newpass)));
echo $newpassword;
一樣把產生出來的值複製下來,貼到要塞入的 LDIF 裡面就可以了
這樣子密碼就是以 MD5 加密的方式存在 LDAP 裡面了,再也不必擔心被其它人撈出原來的密碼!
沒有留言:
張貼留言