MD5 summary algorithm C language implementation