module Smbhash
Public Instance Methods
lm_hash(password, encoding=nil)
click to toggle source
# File lib/smbhash.rb, line 5 def lm_hash(password, encoding=nil) dos_password = Private.convert_encoding("ISO-8859-1", encoding || "UTF-8", password.upcase) fail ArgumentError, 'Password must be < 14 characters in ISO-8859-1' if dos_password.size > 14 Private.encrypt_14characters(dos_password).unpack("C*").collect do |char| "%02X" % char end.join end
ntlm_hash(password, encoding=nil)
click to toggle source
# File lib/smbhash.rb, line 16 def ntlm_hash(password, encoding=nil) ucs2_password = Private.convert_encoding("UTF-16LE", encoding || "UTF-8", password) fail ArgumentError, 'Password must be < 255 characters in UTF-16LE' if ucs2_password.size > 255 hex = OpenSSL::Digest::MD4.new(ucs2_password).hexdigest.upcase hex end
ntlmgen(password, encoding=nil)
click to toggle source
# File lib/smbhash.rb, line 27 def ntlmgen(password, encoding=nil) [ lm_hash(password, encoding), ntlm_hash(password, encoding) ] end