utils.md5
Lua function

utils.md5

Summary

Hash a string using the 128-bit MD5 algorithm

Prototype

s = utils.md5 (s)



Description

This returns a 128-bit MD5 hash of the string s, which may contain binary zeroes. Unlike the utils.hash function this returns the result as a straight 16-byte (128-bit) field (that is, not converted to printable hex). If you want it in readable form you must then convert it yourself (eg. with utils.tohex).

eg.


print (utils.tohex (utils.md5 ("nick gammon")))
--> result: 9A380FD967D936AC99ED73B4A038CE8C



You can write a small Lua program to do the same thing that the md5sum program does (in Linux, Cygwin etc.):


f = io.open ("docs/RegularExpressions.txt", "rb")
if f then
  print (utils.tohex (utils.md5 (f:read ("*a"))))
  f:close () 
end -- if

--> result: 3764E22E2AC5BA67997C42C288253101


Compare this to the output from md5sum using Cygwin:


$ md5sum RegularExpressions.txt
3764e22e2ac5ba67997c42c288253101 *RegularExpressions.txt


The hash is the same, apart from not being in lower case, which you can change with the string.lower function if you want.



See Also ...

Topics

DOC_lua_base Lua base functions
DOC_lua_bc Lua bc (big number) functions
DOC_lua_bit Lua bit manipulation functions
DOC_lua_coroutines Lua coroutine functions
DOC_lua_debug Lua debug functions
DOC_lua_io Lua io functions
DOC_lua_math Lua math functions
DOC_lua_os Lua os functions
DOC_lua_package Lua package functions
DOC_lua_rex Lua PCRE regular expression functions
DOC_lua Lua script extensions
DOC_lua_string Lua string functions
DOC_lua_tables Lua table functions
DOC_lua_utils Lua utilities
DOC_scripting Scripting

Lua functions

LUA_utils.base64decode utils.base64decode (Decode a string which was base-64 encoded)
LUA_utils.base64encode utils.base64encode (Encode a string with base-64 encoding)
LUA_utils.choose utils.choose (Display a combo box with choices in it)
LUA_utils.compress utils.compress (Compress a string)
LUA_utils.decompress utils.decompress (Decompress a string)
LUA_utils.editbox utils.editbox (Display a large message box and get free-format reply)
LUA_utils.edit_distance utils.edit_distance (Returns the Levenshtein Edit Distance between two words)
LUA_utils.filepicker utils.filepicker (Invokes the Windows standard "file picker" dialog box)
LUA_utils.fromhex utils.fromhex (Convert a string from hex)
LUA_utils.functionlist utils.functionlist (Returns a table of MUSHclient world function names)
LUA_utils.hash utils.hash (Hash a string, returning the hex codes)
LUA_utils.info utils.info (Information about directories)
LUA_utils.inputbox utils.inputbox (Display a message box and get free-format reply)
LUA_utils.listbox utils.listbox (Display a dialog box with choices in it in a single selection list box)
LUA_utils.metaphone utils.metaphone (Returns metaphones (sound-alike codes) for the supplied word)
LUA_utils.msgbox utils.msgbox (Display a message box and get a response)
LUA_utils.multilistbox utils.multilistbox (Display a dialog box with choices in it in a multiple selection list box)
LUA_utils.readdir utils.readdir (Read a disk directory into a table)
LUA_utils.sha256 utils.sha256 (Hash a string using a 256-bit hash)
LUA_utils.spellcheckdialog utils.spellcheckdialog (Spell-checker dialog)
LUA_utils.split utils.split (Split a delimited string into a table)
LUA_utils.tohex utils.tohex (Convert a string into hex)
LUA_utils.utf8decode utils.utf8decode (Encodes a series of Unicode codes into a UTF-8 string)
LUA_utils.utf8encode utils.utf8encode (Encodes a series of Unicode codes into a UTF-8 string)
LUA_utils.utf8valid utils.utf8valid (Checks if a UTF-8 string is valid)
LUA_utils.xmlread utils.xmlread (Parses an XML string into a nested table)

(Help topic: lua=utils.md5)

DOC_contents Documentation contents page