SSHA パスワードを持つ OpenLDAP ユーザーがいます。彼の SSHA でエンコードされたパスワードを、php Web フォームで指定されたパスワードと比較したいと考えています。
残念ながら、ldap_compare はプレーン テキストのパスワードしか比較できません。
$check = ldap_compare($ldapconn, $dn, $ldap_password, $php_webform_password);
OpenLDAP で SSHA パスワードを比較できるように、平文のパスワードに基づいて PHP でまったく同じ SSHA パスワードを生成する方法はありますか?
または、それを比較する安全な方法はありますか?
「{SSHA}」は知っています。base64_encode(pack('H*',sha1($php_webform_password))) ですが、エンコーディングに必要なソルトはランダムなので、PHPで同じものを生成することはできません。
これに対する解決策はありますか?安全ではないため、OpenLDAP で平文のパスワードを使用したくありません。
ご協力ありがとうございました。