Best Data Type to Store Result of HASHBYTES('MD5', ...)
According to Books Online:


  The output conforms to the algorithm standard: 128 bits (16 bytes) for
  MD2, MD4, and MD5; 160 bits (20 bytes) for SHA and SHA1; 256 bits (32
  bytes) for SHA2_256, and 512 bits (64 bytes) for SHA2_512.


So despite the fact that the function technically returns varbinary(8000), you'll only ever get 16 bytes with MD5. If you are completely certain you only need MD5, then a binary(16) will do it. If you want to play it safe, and allow any possible algorithm (current or future) that HASHBYTES can handle, go with varbinary(8000).

I definitely wouldn't recommend a char type, since that will involve string conversion overhead, and unnecessary storage overhead.