use Digest::MD5 directly