This is the image from a website that shows all the steps of the MD5 Hashing algorithm:

The original message is 'Hello World!'

The original message is 'Hello World!'. I don't understand where these values are coming from:

Values of the massage divided in 16 words.

For example the 1st word '[0]' is 1819043144. What is that number representing from the original message?


1819043144 in decimal is 6c6c6548 in hexadecimal. In US-ASCII, the letters have the following encodings:

  • H = 0x48
  • e = 0x65
  • l = 0x6c
  • l = 0x6c
  • etc.

‘Word’ here means a group of bits of a natural size for a machine, typically larger than a byte; in this case, it's a group of 32 bits. It does not mean an English word like ‘Hello’. MD5 breaks the padded message into blocks of 16 words (512 bits) apiece to work on one at a time before moving onto the next block in sequence.

  • $\begingroup$ Addition: MD5 group the bytes of the (padded) message in 4-byte words, with the bytes in little-endian order in a word. The length (in the padding) is also in little-endian order. The bits in a byte are in big-endian order, and that matters for the padding (that's why the first padding byte is 0x80 rather than 0x01 for any message with length in bit multiple of 8). SHA, SHA-1 and SHA-2 are big-endian everywhere. $\endgroup$ – fgrieu Jan 26 '20 at 17:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.