【问题标题】:Generate NTLMv2 hash and validation生成 NTLMv2 哈希和验证
【发布时间】:2017-02-18 05:40:40
【问题描述】:

我正在开发一个小型 Clojure 项目,我需要能够从纯字符串生成 NTLMv2 哈希。该值将用于填充 openLDAP 实例中的 sambaNTPassword 字段。我预计这将涉及调用一些 Java 库来完成繁重的工作,并从 java example 开始。但是,结果看起来不正确,我看到一些帖子表明 jcifs 可能不是 NTLMv2 的好解决方案。

所以我有两个问题

  1. 有谁知道我可以使用一个简单的脚本来生成 NTLMv2 哈希值,我可以将其用作检查脚本,即与我从解决方案中获得的输出进行比较。

  2. 对其他可能更适合此任务的 Java 库有什么建议吗?

【问题讨论】:

    标签: java hash clojure ntlmv2


    【解决方案1】:

    实际上,通过更多的搜索和对我的 Clojure 的更多调试,我找到了两个问题的答案。想我会把它贴在这里以防万一它对其他人有用。

    最后一部分 - 找到了一个基于 Web 的 NTLMv2 哈希生成器,因此能够使用它来验证我的输出。见Browserling NTLM Hash Generator

    现在,我的解决方案。我最终让 jcifs 正常工作。在将 jcifs.jar 安装到我的本地 maven 存储库(使用 lein-localrepo)之后,这非常容易——我确实认为我更喜欢使用 Clojure,即使大部分代码已经在 J​​ava 中。我不是 clojure 专家,但这应该相当清楚(我希望)

    (ns cifs-clj.core
      (:import [jcifs.util Hexdump MD4])
      (:gen-class))
    
    (defn hash-nt-password [pwd]
      (let [pwd-bytes (.getBytes pwd "UnicodeLittleUnmarked")
            md4 (doto (MD4.)
                  (.engineUpdate pwd-bytes 0 (alength pwd-bytes)))
            hash-bytes (.engineDigest md4)]
        (Hexdump/toHexString hash-bytes 0 (* 2 (alength hash-bytes)))))
    

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 2015-11-30
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多