PHP實現LDAP中SHA,SSHA,MD5加密方法____PHP

來源:互聯網
上載者:User

  前幾天因為工作的關係,需要使用PHP類比LDAP中的SHA,SSHA,MD5的加密方法,本來以為直接使用sh1(),md5()這樣的方法就可以實現,可是這樣寫完了以後發現產生的加密字串,在LDAP中解密是錯誤的,後來查了查資料才發現,LDAP中SHA,SSHA,MD5加密方法是經過了特殊處理的,具體如下:

SHA加密方法

 /**
  * SHA加密
  * @param $password  需要加密的字串
     * @return 返回加密號的字串
  * */
 public function ldap_sha($password)
 {
  $ldap_passwd = “{SHA}”.base64_encode(pack(“H*”, sha1($password)));
  return $ldap_passwd;
 }

SSHA加密方法:

  /**
     * SSHA密碼編譯演算法
     * @param $password  需要加密的字串
     * @return 返回加密號的字串
     * */
    public function ldap_ssha($password)
    {
      $salt = “”;
   for ($i=1; $i<=10; $i++)
   {
              $salt .= substr(‘0123456789abcdef’,rand(0,15),1);
         }
    $hash = “{SSHA}” . base64_encode(pack(“H*”,sha1($password.$salt)).$salt);
    return $hash;
 }

MD5加密方法:

 /**
  * MD5加密
  * @param $password  需要加密的字串
     * @return 返回加密號的字串
  * */
 public function ldap_md5($password)
 {
        $md5 = “{MD5}”.base64_encode(pack( ‘H*’,md5($password)));
        return $md5;
 }

參考:http://www.xiaolangspace.com/archives/22

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.