in reply to MD5 -- not digest::md5
$msgbin .= 0 until length $msgbin == 448 % 512; [download]
448 % 512 is always going to be 448, so what's the point?