MD5 : Java Glossary


MD5 (Message Digest algorithm 5) a message-digest algorithm developed by RSA (Rivest, Shamir and Adelman) Laboratories used for creating unforgeable digital signatures. MD5 produces an 128-bit (16 byte) message digest. Most existing software applications that handle certificates only support MD5. It is also used in signing Netscape jar files. Its advantage is rapid computation. Its disadvantage is cryptographic weakness. Longer digests such as SHA-1 (Secure Hash Algorithm 1), SHA-256 and SHA-512 are used for Sun jar signing. You compute an MD5 digest using a MessageDigest object created like this: Note that MD5 involves no private or public key. The algorithm for computing it is completely public. It represents a summary of an entire file or message. Only that summary needs to be digitally signed/encrypted, not the entire file.

A digest looks like an byte[16] of apparently random bytes, i.e. 128 bits, or a hex number 32 digits long. though they are completely repeatable. You need to armour it if you want to make it printable for transporting in an email, for example. The MD5 digests that you see in the manifest of a digitally signed jar file are base64 encoded.

MD5 is a trap-door, one-way function. You can easily compute the MD5 digest of a document, but you can’t go backwards and compose a document with a given digest. MD5 is not an encryption method.

Learning More

Oracle’s Javadoc on MessageDigest/MD5 : available:

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number