這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 裡面了,再也不必擔心被其它人撈出原來的密碼!

 

arrow
arrow
    全站熱搜

    Bojack 發表在 痞客邦 留言(0) 人氣()