![]() |
decryption problem with MD5
Hi
I have a string like "D9" with ascii code "44" for "D" and "39" for "9" x=ascii(D)+ascii(9) ==> x=7D I assume only uppercase char in reverse 7D=44+39 ==>D9 *** 7D=45+38 ==>E8 7D=46+37 ==>F7 but in md5 we have 32 character that after adding them we have 16 key value like 7D in above example and every key value have 3 possibility ( i hope ) means we have 3*3*...*3=3^16= 43046721 posible string . q1 : MD5 string have a special form to reduce above possible string ? do you have an idea ho to reverse it ? 10x |
md5 is not reversible. It is compression function (hash). The only way to solve it - find collision.
|
try to bruteforce it,many tools available since years.
|
thanks
I am not try to reverse MD5 , before i get a string that hashed with md5 algo . in this step i have sum of assci code of two char . how to find orginal chars ? |
According to your description, it seems that there are no special form to reduce , except for there are other information about the original md5 string or the 16 key value, such as their validation?
|
orginal md5 string or 16 key value not used instead maked hash string used .
|
q1 : MD5 string have a special form to reduce above possible string ?
unfortunately, no... you wrote: 7D=44+39 ==>D9 7D=45+38 ==>E8 7D=46+37 ==>F7 but can't 7D=39+44 ==>9D 7D=38+45 ==>8E 7D=37+46 ==>7F also be valid solutions? my understanding from your first two posts was that you wanted a solution for each byte taken from a md5 hash, given that each byte is the sum of 2 "ascii code" for values in the range of possible Hex number ['1'..'9', 'A'..'F'] (thus 0x30-0x39 and 0x41-0x46) ? this would already limits the values of the bytes (from the md5) to 0x60-0x92.. Do you really have a md5 hashing that always give bytes in this limited range? Please, give an example of a md5 used in your example then. Now you wrote "orginal md5 string or 16 key value not used". From where does the 7D comes from then? Confusing... |
Its magic , I want to reduce possible string but increased rapidly 6^16=2821109907456 .
It is used as login and in first time that set by user then hashed value saved and then used to check valid user login. this encryption is made from "md5 algo" + "simple adding algo" and adding is not part of md5 and programmer used adding after using md5 . ( instead of using non-standard md5 , maybe programmer dont know about non-standard md5) I think this is good idea becuase if programmer only use standard md5 for fixed string length ( 16 char in our example ) then its easily breaked. all possible 16 char string maked and hashed with md5 and search between them . many site provide standard md5 decryptor in above manner . |
"this encryption is made from "md5 algo" + "simple adding algo" and adding is not part of md5 and programmer used adding after using md5 ."
That is exactly how I understand the problem. Now, for the "simple adding algo" to work (at least the way you presented it in your first post), the MD5 should give you bytes (the 32 chars of the md5 divided into 16 bytes) containing only values between 0x60 and 0x92 ! That is the problem. For instance, if you hash "exetools", you get: DC67724E1CCF839C05957C27F9862499 DC 67 72 4E 1C CF 83 9C 05 95 7C 27 F9 86 24 99 What will the "simple adding algo" do with the values DC or 24? |
ascii code for D = 44h
ascii code for C = 43h + ------ 87 saved ascii code for 2 = 32h ascii code for 4 = 34h + -------- 66 saved in md5 string we have 0 , 1 , 2 , 3 , ..., D , E , F ( if only using uppercase ) in hex 0x30 , 0x31 , 0x32 , 0x33 , .... , 0x44 , 0x45 , 0x46 Minimum = Ascii(0) + Ascii(0) = 0x30 + 0x30 = 0x60 Maximum = Ascii(F) + Ascii(F) = 0x46 + 0x46 = 0x8C 0x60 < final saved hash < 0x8c |
I thought I understood MD5. But after reading this thread, I'm no longer sure.
|
I'm not really sure why there is still discussion about 'decrypting md5'. md5 is not an encryption algorithm you cannot 'decrypt' it!
|
Quote:
|
its possible to crack hashed string with md5 and find orginal string .
for example in hxxp://md5cracker.org or bruteforce method or ... |
Ah! My confusion came from your first post where you wrote:
"��but in md5 we have 32 character that after adding them we have 16 key value like 7D in above example" 7D does not come from the md5, D9 does! Then, since many solution exist for each byte in the "final saved hash", I don't think you can reverse it, exactly as cnbragon pointed out |
@zeytunak: it is not possible to crack md5 because unlimited number of inputs give the same result. You can find only the collisions which give the same md5, but you cant be sure it is original input.
|
Quote:
The best you can really do is come up with something that creates the same MD5 value as being searched for. There will be absolutely no guarantee that the data is the same as the original - Unless you have other clues. |
The title of the thread may be confusing, but zeytunak already mentioned that the main problem is NOT actually about the md5 hashing.
As I understand it, the problem is that after MD5 hashing, a "simple adding algo" is used to encrypt the MD5 hash. Since reversing this encryption procedure will results in an exponential number of pseudovalid results, zeytunak was only asking if MD5 string may have a special "pattern" in it (I guess) which would help to reduce the many possible solutions given by reversing the "simple adding algo"�� Nothing about cracking or reversing the MD5 hashing itself��. |
only realistic way would be use a GPU to do calculations. math tecniques cannot help a lot.
|
| All times are GMT +8. The time now is 06:19. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX