code: md5.cs in: //CHUNK IMPLEMENTATION when do the copy from input to working, always start from the beginning is wrong! The correct way is: if (i == chunks) {... Buffer.BlockCopy(input,...