おそらく車輪だろうけど
LDAP で管理している Samba のユーザアカウントを Java からいじれるように Java による LANMAN パスワードと NT パスワードのそれぞれのハッシュ値を求めるライブラリを作成しました。
要するに sambaSamAccount の sambaLMPassword と sambaNTPassword のためのハッシュ値を求めるライブラリです。
ライセンスとか難しいことは考えていませんが、とりえず LGPL ということで使ってください。
- smbldap-0.2.0.jar - コンパイル済みバイナリ
- smbldap-0.2.0-sources.jar - ソース
Samba と LDAP に関するツールとして smbldap tools というのがあります。これは perl スクリプトによるコマンド群です。この中にパスワードを設定するコマンドがあるのですが、これは mkntpwd という外部コマンド(ネイティブコード)を呼んで LANMAN パスワードと NT パスワードのハッシュ値を求めています。その mkntpwd を Java に移植したというだけです。
使い方
以下のサンプルコードでわかるのではないかと。
package example; import sc.oss.samba.ldap.MkNtPwd; public class Exsample { public static void main(String[] args) { String password = "hogehoge"; String lmPassword = MkNtPwd.makeSambaLMPassword(password); String ntPassword = MkNtPwd.makeSambaNTPassword(password); System.out.println("sambaLMPassword : " + lmPassword); System.out.println("sambaNTPassword : " + ntPassword); } }
実行結果
sambaLMPassword : 9E88480B3F6ADE3217306D272A9441BB sambaNTPassword : 480F97CE40A2C72826C293D71BA565E0