123456789101112131415161718192021222324252627282930313233343536373839 |
- ----------------------------------------------------------------------------
- -- Modify version from https://github.com/keplerproject/md5
- ----------------------------------------------------------------------------
- local core = require "md5.core"
- ----------------------------------------------------------------------------
- -- @param k String with original message.
- -- @return String with the md5 hash value converted to hexadecimal digits
- function core.sumhexa (k)
- k = core.sum(k)
- return (string.gsub(k, ".", function (c)
- return string.format("%02x", string.byte(c))
- end))
- end
- local function get_ipad(c)
- return string.char(c:byte() ~ 0x36)
- end
- local function get_opad(c)
- return string.char(c:byte() ~ 0x5c)
- end
- function core.hmacmd5(data,key)
- if #key>64 then
- key=core.sum(key)
- key=key:sub(1,16)
- end
- local ipad_s=key:gsub(".", get_ipad)..string.rep("6",64-#key)
- local opad_s=key:gsub(".", get_opad)..string.rep("\\",64-#key)
- local istr=core.sum(ipad_s..data)
- local ostr=core.sumhexa(opad_s..istr)
- return ostr
- end
- return core
|