(1) User names and passwords are stored in the commonly used databases.The password is not saved with clear code.

Sometimes using md5 passwords, many languages ​​provide methods or functions for generating strings into md5 passwords.md5's encryption algorithm is public.

Sometimes you can also use your own string encryption algorithm,This encryption algorithm is known only to you.

(2) The process of cracking md5 is to first calculate the md5 value of a large number or all possible strings, and then query it to crack.Although some websites stipulate that the number of passwords is between 6 and 20, it is still quite troublesome to calculate so many strings in advance and organize and store them efficiently.Quite slow.

Because the number of md5 bits is fixed,For example, 16, 32, 64, and the combination and length of strings is endless.There is conflict.But if you know that the length of the string before encryption has a fixed range,For example 6 ~ 20, this can still be cracked.

However, if you don't know the length of the characters before encryption, then this is endless.Looks like no one can crack it yet.

Md5 password cracking website:You can search for "md5 decryption"

(3) The following is a module program for java to generate the md5 password for a given string.

import java.security.messagedigest;
public class md5test {
  public void tomd5 (string plaintext) {
   try {
    //Generate a messagedigest object that implements the specified digest algorithm.
    messagedigest md=messagedigest.getinstance ("md5");
    //Update the digest with the specified byte array.
    md.update (plaintext.getbytes ());
    //Complete the hash calculation by performing final operations such as padding.
    byte b []=md.digest ();
    //Generate specific md5 password to buf array
    int i;
    stringbuffer buf=new stringbuffer ("");
    for (int offset=0;offset<b.length;offset ++) {
     i=b [offset];
     if (i<0)
      i +=256;
     if (i<16)
      buf.append ("0");
     buf.append (integer.tohexstring (i));
    system.out.println ("32-bit:" + buf.tostring ());//32-bit encryption
    system.out.println ("16-bit:" + buf.tostring (). substring (8, 24));//16-bit encryption,In fact, it is the interception after 32-bit encryption
   catch (exception e) {
    e.printstacktrace ();
  public static void main (string agrs []) {
    new md5test (). tomd5 ("lxd");//encrypt lxd

PS:Here are 2 more md5 encryption tools for everyone,Interested friends can refer to:

md5 online encryption tool:

Online md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160 encryption tool:

  • Previous How to uninstall MySQL on a Ubuntu or Debian server
  • Next Python implementation of RC4 file encryption