Password cache decryption. How to decrypt an MD5 hash: the simplest methods

Often you need to find out the password, having only a hash in hand. You can use your computer to sort through the options, but it is much faster to use an existing database. Even publicly accessible databases contain tens of millions of hash-password pairs, and searching them through a cloud service takes a matter of seconds.

There are several zettabytes of digital data in the world, but not all of this information is unique: repetitions are scattered across billions of media and servers. Regardless of the type of data, working with them requires solving the same fundamental tasks. This is redundancy reduction due to partial elimination of repetitions (deduplication), integrity checking, incremental creation backups and user authorization. Of course, the last aspect interests us the most, but all these techniques are based on general data processing methods using hashing. Exist cloud services, which allow you to use this procedure faster - with well-known goals.

At first glance, it seems strange that in different tasks a common procedure for calculating and comparing checksums or hashes - bit sequences of a fixed length - is used. However, this method is really universal. Checksums serve as a kind of digital fingerprints of files, keys, passwords and other data, called messages in cryptography. Hashes (or digests, from the English digest) allow you to compare them with each other, quickly detect any changes and secure access verification. For example, with the help of hashes, you can check the compliance of entered passwords without transferring them in clear text.

Mathematically, this process is performed by one of the hashing algorithms - iterative transformation of data blocks into which the original message is divided. The input can be anything - from a short password to a huge database. All blocks are looped with zeros or truncated to a given length until a fixed size digest is received.

Hashes are usually written in hexadecimal. So they are much more convenient to compare in appearance, and the record is four times shorter than the binary one. The shortest hashes are obtained using Adler-32, CRC32 and other algorithms with a digest length of 32 bits. The longest are in SHA-512. In addition to these, there are about a dozen other popular hash functions, and most of them are able to calculate digests of intermediate length: 160, 224, 256 and 384 bits. Attempts to create a function with an increased hash length continue, because the longer the digest, the more different options the hash function can generate.

The maximum amount of initial data that the hash function can process is determined by the form of their representation in the algorithm. They are usually written as a 64-bit integer, so the typical limit is 264 bits minus one, or two exabytes. Such a limitation does not yet have practical significance even for very large data centers.

Uniqueness is the key to reliability

The uniqueness of the hash is one of its key properties, which determines the cryptographic strength of the encryption system. The point is that the number of options possible passwords theoretically infinite, but the number of hashes is always finite, albeit very large. The digests of any hash function will only be unique to a certain extent. Powers of two, to be exact. For example, the CRC32 algorithm gives a set of only 232 options, and it is difficult to avoid repetitions in it. Most of the other functions use 128 or 160 bit digests, which drastically increases the number of unique hashes to 2'28 and 2160 respectively.

The coincidence of hashes from different source data (including passwords) is called a collision. It can be random (occurs on large amounts of data) or pseudo-random - used for attack purposes. The hacking of various cryptographic systems is based on the effect of collision - in particular, authorization protocols. All of them first calculate the hash of the entered password or key, and then pass this digest for comparison, often mixing in a portion of pseudo-random data at some stage, or using additional encryption algorithms to enhance protection. The passwords themselves are not stored anywhere: only their digests are transmitted and compared. The important thing here is that after hashing absolutely any passwords with the same function, the output will always be a digest of the same and known size in advance.

Pseudo-reverse

It is impossible in principle to reverse the transformation and obtain the password directly from the hash, even if it is stripped of the salt, since hashing is a one-way function. Looking at the resulting digest, one cannot understand either the amount of the original data or its type. However, you can solve a similar problem: generate a password with the same hash. Due to the collision effect, the task is simplified: you may never know the real password, but you will find a completely different one that gives the required digest after hashing using the same algorithm.

Calculation optimization methods appear literally every year. The teams of HashClash, Distributed Rainbow Table Generator and other international cryptographic computing projects are engaged in them. As a result, for each short combination of printable characters or a variant from a list of typical passwords, hashes have already been calculated. They can be quickly compared with the intercepted one until a perfect match is found.

This used to take weeks or months of CPU time, which in recent years has been reduced to a few hours thanks to multi-core processors and iteration in programs with CUDA support and OpenCL. Admins load servers with table calculations during downtime, and someone rents a virtual cluster in Amazon EC2.

Google hash search

Not all services are ready to provide the service of searching passwords by hashes for free. Somewhere registration is required and a ton of advertising is spinning, and on many sites you can also find ads about paid hacking services. Some of them really use powerful clusters and load them, putting the hashes sent to the job queue, but there are also ordinary rogues. They perform free search for money, taking advantage of the ignorance of potential customers.

Instead of advertising honest services here, I will suggest using a different approach - finding hash-password pairs in popular search engines. Their spider robots scour the web every day and collect new data, including fresh records from the rainbow tables.


Therefore, to get started, just write the hash in the Google search bar. If some dictionary password corresponds to it, then it (as a rule) will be displayed among the search results already on the first page. Single hashes can be Googled manually, while large lists can be more conveniently processed using the BozoCrack script

Search XOR calculate

Popular hashing algorithms are so fast that by now it has been possible to generate hash-password pairs for almost all possible variants of functions with a short digest. In parallel, functions with a hash length of 128 bits or more find flaws in the algorithm itself or its specific implementations, which greatly simplifies hacking.

In the nineties, the MD5 algorithm, written by Ronald Rivest, became extremely popular. It has become widely used when authorizing users on websites and when connecting to client application servers. However, its further study showed that the algorithm is not reliable enough. In particular, it is vulnerable to pseudo-random collision attacks. In other words, it is possible to deliberately create another sequence of data, the hash of which will exactly match the known one.

Since message digests are widely used in cryptography, in practice, the use of the MD5 algorithm today leads to serious problems. For example, using such an attack, you can fake an x.509 digital certificate. This includes forging an SSL certificate, allowing an attacker to pass off their fake as a trusted root certificate (CA). What's more, in most trusted certificate sets, it's easy to find those that still use the MD5 algorithm for signing. Therefore, the entire public key infrastructure (PKI) is vulnerable to such attacks.

A debilitating brute-force attack will have to be arranged only in the case of really complex passwords(consisting of a large set of random characters) and for hash functions with digests of large length (from 160 bits), which have not yet found serious shortcomings. A huge mass of short and dictionary passwords today is revealed in a couple of seconds using online services.

Online hash decryption

So far, not all hash-password pairs can be found with the help of online services and rainbow tables. However, the short digest features have already been defeated, and short and dictionary passwords are easy to detect even from SHA-160 hashes. Particularly impressive is the instant search for passwords by their digests using Google. This is the easiest, fastest and completely free option.

It happens that you forget the code from the front door, and you stand, waiting for someone who has a better memory than yours. Although scientists have the best memory. They still remember those times when they burned their heels with a red-hot iron for new knowledge. Otherwise, they would not have come up with such a terrible thing as MD5 decryption. And before that, they also managed to encrypt it!

What is MD5?

MD5 is one of the 128-bit based hashing algorithms. Hashing is understood as the transformation of input data according to a certain algorithm into a bit string of a certain length. In this case, the result obtained during the calculations is presented in the hexadecimal system. It is called hash, hash sum or hash code.

The hashing process is widely used in programming and the web industry. Mainly for creating unique values ​​in associative arrays, identifiers.

Scope of hash codes:

  • Creation electronic signatures;
  • Storing passwords in databases of security systems;
  • Within the framework of modern cryptography to generate unique keys online;
  • Checking the authenticity and integrity of the elements of the PC file system.

MD5 as a hashing standard was developed in 1991 to generate a unique hash code from set value followed by verification of its authenticity.

The md5sum utility, designed to hash the data of a given file using the MD5 algorithm, returns a string. It consists of 32 hexadecimal numbers (016f8e458c8f89ef75fa7a78265a0025).

That is, the hash received from the function, which is based on this algorithm, produces a string of 16 bytes (128) bits. And this string includes 16 hexadecimal numbers. In this case, changing at least one of its characters will lead to a subsequent irreversible change in the values ​​of all other bits of the string:

MD5 Reliability Issues

It would seem that such a characteristic of MD5 should provide a 100% guarantee of invulnerability and data preservation. But even this was not enough. In the course of ongoing research, scientists have identified a number of gaps and vulnerabilities in this algorithm, which was already common at that time. The main reason for the weak security of MD5 is the relatively easy detection of collisions in encryption.

Collision is understood as the possibility of obtaining the same result of hash function calculations with different input values.

Simply put, the greater the probability of finding collisions, the lower the reliability of the algorithm used. The probability of finding collisions when encrypted with more reliable hash functions is practically reduced to 0.

That is, the high probability of decrypting MD5 passwords is the main reason for not using this algorithm. Many cryptologists ( data encryption experts) associate the low reliability of MD5 with the short length of the resulting hash code.

Scope of the hashing algorithm:

  • Checking the integrity of files received via the Internet - many software installation packages are equipped with a hash code. During application activation, its value is compared with the value located in the developer's database;
  • Search for duplicated files in the file system - each file has its own hash code. Special Application scans the computer's file system, comparing the hashes of all elements. When a match is found, the utility notifies the user or removes the duplicate. One such program is Duplifinder:
  • For password hashing - in the operating system family UNIX systems each user of the system has his own unique password, which is protected by hashing based on MD5 . Some Linux-based systems also use this password encryption method.

An overview of tools for decoding an MD5 hash code

Sometimes, when working with a computer or corrupted databases, it is necessary to decode a hash value encrypted with MD5.

It is most convenient to use specialized resources that provide the ability to do this online:

  • md5.web-max.ca - this service has a simple and clear interface. To get the decoded value, you need to enter the hash and fill in the verification captcha field:
  • md5decrypter.com is a similar service;
  • msurf.ru this resource has a simple Russian-language interface. Its functionality allows not only to decrypt hash code values, but also to create them:

If you look at the decoding values ​​displayed in the above figure, it becomes clear that the decoding process gives almost no results. These resources are one or more interconnected databases, which contain transcripts of the simplest words.

At the same time, the decoding data of the MD5 hash of even such a common part of the password as "admin" was found in only one database. Therefore, password hashes consisting of more complex and longer combinations of characters are almost impossible to decipher.

Creating an MD5 hash is a one-way process. Therefore, it does not imply reverse decoding of the original value.

Security basics when using MD5

This coding standard is one of the most common data protection methods not only in application but also in web programming. Therefore, it will not be superfluous to secure your md5 hash from intentional hacking.

The main way to ensure the security of your password hash is to use a "salt". It is based on adding a few random characters to the password and then hashing the result.

Many programming languages ​​use special classes and functions for this. Server-side programming languages ​​are no exception to the rule.

You can create an MD5 hash code in php using several functions:

  • md5 () - as one of the parameters takes the value of "salt";
  • crypt() - unlike the previous one, this function completely automates the whole process, including the generation of the salt value.

Its syntax is:

string crypt (string $str [, string $salt ])

Usage example:

$hash = crypto("password")

When using the md5() function in PHP, generation methods are used to set the salt value. random numbers. For example rand() :

In addition to using "salt", several more methods have been developed to protect the MD5 hash.

Although modern computer users are much more advanced than the first users of old systems, not everyone knows what it is and why decrypting a hash is needed (including online). As it turns out, everything is much simpler than it might seem at first glance.

What is hash encryption?

Based on the official definition, a hash is a fixed-length string that corresponds to some data (including confidential data) in encrypted form.

This technique will be applied mainly to logins and passwords using the MD5, NTLM, SHA-160 algorithms and derivatives based on them. The most common is the MD5 algorithm. Data encrypted with it, especially long passwords containing not only letters and numbers, but also Special symbols, decipher standard method selection is a hopeless business (although some programs and online services can decrypt short passwords).

Why decrypt the hash

Many users may quite naturally wonder how necessary all this is. However, the mistake of this approach is that they do not understand that they can forget the password they are looking for for some service, service or program after encryption, so that no unauthorized person can find it out, so to speak, in its pure form.

Recovering a password or login is sometimes impossible. And if you look at the basics of cryptography, this is where the decryption of the hash is required. In fact, this procedure is a reconstruction of the original combination from the modified data.

This process is quite laborious. For example, for the word "person", the combination encrypted using the MD5 algorithm looks like. And that's just seven letters in the original word. What can we say about longer passwords containing numbers or special characters, and even case-sensitive ones! However, some applications and online services containing huge databases of most possible combinations can decrypt. Not always, however, successfully (everything depends on the initial combination), but in most cases you cannot refuse their effectiveness, although they use the brute force technique (brute force).

Program to decrypt password hash

One of the most powerful programs is considered to be the online application Hash Killer ("Hash Killer") from British programmers. Its database contains about 43.7 million known combinations of pairs.

The only drawback is that passwords containing Cyrillic characters are displayed incorrectly in the default encoding. But, as it is believed, the decryption of the hash in Latin is done instantly. According to statistics, the approximate time to decrypt three out of five simple passwords is half a second.

In addition, on official resource developers are constantly held all sorts of competitions with the involvement of all comers. And they, in turn, as it turns out, are sometimes capable of producing rather unconventional solutions.

No less interesting is the decryption of the hash using the John The Ripper utility. It works quite fast, but the main drawback is that all the functions of the program can be used exclusively from command line, which simply scares away many users.

Online decryption services

Basically, not to install software, you can also use online services for decrypting NT hashes of passwords or data of any other type.

These online resources are not always free. In addition, many of them contain not as large databases as we would like. But algorithms like MD5 or encryption using MySQL are mostly easy to recreate. In particular, this applies to the simplest combinations consisting of numbers.

But you should not deceive yourself, since such services do not always determine the decryption method automatically. That is, if encryption was performed using the base64 encode algorithm, the user must set the corresponding decode parameter himself. In addition, do not forget that there may be cases with unknown encoding, when decrypting the hash online becomes impossible at all.

Instead of an afterword

What is the most The best decision, it's hard to say. Some users advise installing the Stirlitz application, which is mainly designed to decrypt passwords consisting of Cyrillic characters based on the binhex, base64, BtoA, xxencode, uuencode, etc. algorithms. But even in this case, a complete guarantee of success cannot be given.

Finally, before decoding, you should first pay attention to the combination itself. If it looks like unreadable characters, decryption may not be required (you just need to change the encoding). Otherwise, if such actions are really needed, it is better to resort to help special utilities described above, and not use Internet resources that offer online hash decryption.


cmd5.ru is one of the oldest hash decryption services that has existed since 2006. Service benefits:
  • a unique database, unparalleled in volume - 4800 billion records;
  • a huge number of supported types of hashes for enumeration;
  • possibility of group processing of hashes;
  • the presence of a software client to access the service.
In addition to free access to the service, there is an extended paid service package. Should I pay for decryption? Definitely yes, especially in cases where no other service can crack your password, or you are decrypting hashes on permanent basis, especially since the rates are quite democratic. From my own experience, I can say that this is the most effective service, so it takes an honorable first place.

hash types:

  • md5(md5($pass))
  • sha256
  • mysql
  • mysql5
  • md5($pass.$salt);Joomla
  • md5($salt.$pass);osCommerce
  • md5(md5($pass).$salt);Vbulletin;IceBB;Discuz
  • md5(md5($salt).$pass)
  • md5($salt.$pass.$salt);TBDev
  • md5($salt.md5($pass))
  • md5(md5($pass).md5($salt))
  • md5(md5($salt).md5($pass));ipb;mybb
  • sha1($salt.$pass)
  • sha1(lower($username).$pass);SMF
  • sha1(upper($username).":'.upper($pass));ManGOS
  • sha1($username.":'.$pass)
  • sha1(salt.pass.'UltimateArena')
  • MD5(Unix);phpBB3;WordPress
  • Des(unix)
  • mssql
  • md5(unicode)
  • serv-u
  • radminv2.x


  • free | 329M+48G | md5 | dic

    The service gives good results, as it uses third party services in addition to its own local database. Allows you to send for decryption unlimited amount passwords, there is an API.


  • free | 36g | md5 lm ntlm sha1 | rainbow tables

    After a long offline, the TMTO (Time-Memory Trade Off Cracking) project has become available again. The base has become even larger, new algorithms have appeared, the service remains free, as before. I am pleased with the high speed of decryption due to the constant growth of the cluster. You can send an unlimited number of hashes for decryption at one time.


  • free & auth | 3M | md5 mysql mysql5 sha1 | dic rainbow tables

    Hashcracking.ru is still in service, it allows you to search for mysql and mysql5 passwords, brute force by mask, it is possible to search through a dictionary with salt.

  • In recent decades, the problems of confidentiality and information security have become increasingly relevant. That is why attempts are constantly being made using the most modern algorithms. One such method is to use a hashing algorithm called MD5. How to decrypt an MD5 hash will now be discussed. True, especially hope for gaining knowledge on cracking passwords or any other confidential information it is not worth counting due to the difficulty of such a process and illegality.

    What is an MD5 hash?

    In general, hashing is understood as the transformation of any incoming data into a string of a certain length, represented in a 128-bit basis, using a special algorithm.

    In other words, such a process cannot be called encryption. And in the same way, you can’t talk about decrypting an MD5 hash, since other methods of presenting information are used here. In addition, in this case, a special calculation system is used, which nullifies all attempts at decryption.

    How to decrypt an MD5 hash: general principles

    At best, we can only talk about the selection of the desired content by three main methods:

    • use of a dictionary;
    • the use of "rainbow tables";
    • brute method.

    The initial MDA5 hashing technology was developed under the guidance of Professor Ronald L. Rivest. Since then, it has been widely used as one of the cryptography methods for and online keys, creating electronic signatures, checking the integrity file systems, creating web identifiers, etc. And, as it is believed, it is extremely difficult (although possible) to decrypt an MD5 hash using direct algorithmic methods, because even changing one of the characters in the hexadecimal representation entails automatic change everyone else. Thus, only the method commonly referred to as brute (brute force intervention) remains. Nevertheless, the simplest combinations can be brought back to their original form.

    Use of online resources

    If the need for decryption is already ripe, for starters, you can use the services of many Internet resources that offer their services. In general terms, the principle of operation is that the user enters a combination to be decrypted in a special line on the site, and then activates the selection process.

    If the encoding of the initial information was carried out using the means PHP language, in some cases online services may use a combination of base_64 encode/base_64 decode commands. In any case, the technique involves only the selection of characters, numbers or letters in the desired combination by comparing with databases that store examples of coded results.

    How about yourself?

    Some users try to decrypt the hash code themselves. But, as it turns out, doing this is quite problematic. To simplify this procedure, it is better to use narrowly focused utilities, among which the following programs clearly stand out:

    • password pro.
    • John the Ripper.
    • Cain & Abel.
    • "Stirlitz" and others.

    The first two programs are designed to calculate the simplest combinations by substituting elementary combinations like 1212121.

    The third one seems to be able to decrypt the MD5 hash, but it does it too slowly. However, its advantage is that it comes with a table generator, although an uninitiated user is unlikely to understand this.

    Stirlitz is a very interesting application, but it uses a too limited number of calculation algorithms, among which the most significant are BtoA, uuencode, base64, xxencode and binhex.

    For that matter, you need to use the BarsWF brute utility, which is the fastest of all known and in most cases can decrypt the MD5 hash (the password, if any, can also be converted to the desired form), operating with billions of hash calculations per second . However, even with all these software tools It should also be taken into account that, in addition to the main algorithm, MDA5 encoding can be performed simultaneously and using MD4 or IM.

    But even with all this, there are many holes in hashing. Many experts believe that the code length, even with a 128-bit base, is too small, and therefore, with the development of software tools and the increase in the computing capabilities of modern processor systems, the decryption process is becoming less laborious, which is why the further development and use of such tools already looks perfect. impractical.

    Conclusion

    It remains to be added that it is possible to decrypt an MD5 hash not only using the tools described above. If you dig deep on the Internet, you can find a lot of such programs. The question is: is it necessary to do such things? I think ordinary user any computer system such knowledge is unlikely to be useful.

    Internet