By MD5 you mean the message digest algorithm (not the model format), right?
One place is in Quake3: code/qcommon/md5.c
I've written a C++ class for it:
http://edge.svn.sourceforge.net/viewvc/ ... xt%2Fplain
http://edge.svn.sourceforge.net/viewvc/ ... xt%2Fplain
For ZIP archives, LibPHYSFS is probably the best way to go, though Quake3 does have reading code (for pk3 files) in code/qcommon/unzip.cc but it's pretty hard to follow.
I've written some *very basic* C++ code to read and write ZIP files:
http://oblige.svn.sourceforge.net/viewv ... xt%2Fplain
http://oblige.svn.sourceforge.net/viewv ... xt%2Fplain