One-way Hashing Algorithms And Types

Keeper
12 years ago | edited 12 years ago

0

Below is a list of the most commonly used hashing algorithms along with a short description and other specifications around them.


Example: IvS7aeT4NzQPM   
Used in Linux and other similar OS.   
Length: 13 characters.   
Description: The first two characters are the salt (random characters; in our example the salt is the string "Iv"), then there follows the actual hash.```   
Notes: [1] [2]  

Example: Admin:b474d48cdfc4974d86ef4d24904cdd91
Used for caching passwords of Windows domain.
Length: 16 bytes.
Algorithm: MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))```
Note: [1]


Example: $1$12345678$XM4P3PrKBgKNnTaqG9P0T/   
Used in Linux and other similar OS.   
Length: 34 characters.   
Description: The hash begins with the $1$ signature, then there goes the salt (up to 8 random characters; in our example the salt is the string "12345678"), then there goes one more $ character, followed by the actual hash.   
Algorithm: Actually that is a loop calling the MD5 algorithm 2000 times.```   
Notes: [1] [2]   

>> MD5(APR)   
>>   
>> Example: $apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.   
>> Used in Linux and other similar OS.   
>> Length: 37 characters.   
>> Description: The hash begins with the $apr1$ signature, then there goes the salt (up to 8 random characters; in our example the salt is the string "12345678"), then there goes one more $ character, followed by the actual hash.   
>> Algorithm: Actually that is a loop calling the MD5 algorithm 2000 times.

Notes: [1] [2]   

Example: $H$9123456785DAERgALpsri.D9z3ht120
Used in phpBB 3.x.x.
Length: 34 characters.
Description: The hash begins with the $H$ signature, then there goes one character (most often the number ‘9’), then there goes the salt (8 random characters; in our example the salt is the string “12345678”), followed by the actual hash.
Algorithm: Actually that is a loop calling the MD5 algorithm 2048 times.```
Notes: [1] [2]


Example: $P$B123456780BhGFYSlUqGyE6ErKErL01   
Used in Wordpress.   
Length: 34 characters.   
Description: The hash begins with the $P$ signature, then there goes one character (most often the number 'B'), then there goes the salt (8 random characters; in our example the salt is the string "12345678"), followed by the actual hash.   
Algorithm: Actually that is a loop calling the MD5 algorithm 8192 times.```   
Notes: [1] [2]   

Example: 606717496665bcba
Used in the old versions of MySQL.
Length: 8 bytes.
Description: The hash consists of two DWORDs, each not exceeding the value of 0x7fffffff.```


Example: *E6CC90B878B948C35E92B003C792C46C58C4AF40   
Used in the new versions of MySQL.   
Length: 20 bytes.   
Algorithm: SHA-1(SHA-1($pass))```   
Note: The hashes are to be loaded to the program without the asterisk that stands in the beginning of each hash.   

Example: 5e32cceaafed5cc80866737dfb212d7f
Used in the application Remote Administrator v2.x.
Length: 16 bytes.
Algorithm: The password is padded with zeros to the length of 100 bytes, then that entire string is hashed with the MD5 algorithm.```


Example: c4ca4238a0b923820dcc509a6f75849b   
Used in phpBB v2.x, Joomla version below 1.0.13 and many other forums and CMS.   
Length: 16 bytes.   
Algorithm: Same as the md5() function in PHP.```   

Example: 6f04f0d75f6870858bae14ac0b6d9f73:1234
Used in WB News, Joomla version 1.0.13 and higher.
Length: 16 bytes.```
Note: [1]


Example: f190ce9ac8445d249747cab7be43f7d5:12   
Used in osCommerce, AEF, Gallery and other CMS.   
Length: 16 bytes.```   
Note: [1]   

Example: 28c8edde3d61a0411511d3b1866f0636
Used in e107, DLE, AVE, Diferior, Koobi and other CMS.
Length: 16 bytes.```


Example: 6011527690eddca23580955c216b1fd2:wQ6   
Used in vBulletin, IceBB.   
Length: 16 bytes.```   
Notes: [1] [3] [4]   

Example: 81f87275dd805aa018df8befe09fe9f8:wH6_S
Used in IPB.
Length: 16 bytes.```
Notes: [1] [3]


Example: 816a14db44578f516cbaef25bd8d8296:1234   
Used in MyBB.   
Length: 16 bytes.```   
Note: [1]   

Example: a3bc9e11fddf4fef4deea11e33668eab:1234
Used in TBDev.
Length: 16 bytes.```
Note: [1]


Example: 1d715e52285e5a6b546e442792652c8a:1234   
Used in DLP.   
Length: 16 bytes.```   
Note: [1]   

Example: 356a192b7913b04c54574d18c28d46e6395428ab
Used in many forums and CMS.
Length: 20 bytes.
Algorithm: Same as the sha1() function in PHP.```


Example: Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a   
Used in SMF.   
Length: 20 bytes.```   
Note: [1]   

Example: cd37bfbf68d198d11d39a67158c0c9cddf34573b:1234
Used in Woltlab BB.
Length: 20 bytes.```
Note: [1]


Example: $5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqiKSNK1rkTk9zYE1v0   
Used in Linux and other similar OS.   
Length: 55 characters.   
Description: The hash begins with the $5$ signature, then there goes the salt (up to 8 random characters; in our example the salt is the string "12345678"), then there goes one more $ character, followed by the actual hash.   
Algorithm: Actually that is a loop calling the SHA-256 algorithm 5000 times.```   
Notes: [1] [2]   

Example: $6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEmFNLlq6Ik9X3reMXY3doKEuxrcDohKUx0Oxf44aeTIxGEjssvtT1aKyZHjs
Used in Linux and other similar OS.
Length: 98 characters.
Description: The hash begins with the $6$ signature, then there goes the salt (up to 8 random characters; in our example the salt is the string “12345678”), then there goes one more $ character, followed by the actual hash.
Algorithm: Actually that is a loop calling the SHA-512 algorithm 5000 times.```
Notes: [1] [2]

```SHA-1(Django) = sha1($salt.$pass)

Example: sha1$12345678$90fbbcf2b72b5973ae42cd3a19ab4ae8a1bd210b
12345678 is salt (in the hexadecimal format)
90fbbcf2b72b5973ae42cd3a19ab4ae8a1bd210b is SHA-1 hash.```

```SHA-256(Django) = SHA-256($salt.$pass)

Example: sha256$12345678$154c4c511cbb166a317c247a839e46cac6d9208af5b015e1867a84cd9a56007b
12345678 is salt (in the hexadecimal format)
154c4c511cbb166a317c247a839e46cac6d9208af5b015e1867a84cd9a56007b is SHA-256 hash.```

```SHA-384(Django) = SHA-384($salt.$pass)

Example: sha384$12345678$c0be393a500c7d42b1bd03a1a0a76302f7f472fc132f11ea6373659d0bd8675d04e12d8016d83001c327f0ab70843dd5
12345678 is salt (in the hexadecimal format)
c0be393a500c7d42b1bd03a1a0a76302f7f472fc132f11ea6373659d0bd8675d04e12d8016d83001c327f0ab70843dd5 is SHA-384 hash.```

```SHA-1(ManGOS) = sha1(strtoupper($username).‘:’.$pass)

SHA-1(ManGOS2) = sha1($username.‘:’.$pass)

MD5(Custom) = ‘==’.md5(md5(md5($pass).md5($pass).md5($pass).md5($pass)))

md5(3 x strtoupper(md5($pass))) = md5(strtoupper(md5(strtoupper(md5(strtoupper(md5($pass)))))))

MD5(ZipMonster) = 50000 x strtoupper(md5(strtoupper($pass)))```


Notes:

[1] Since the hashing requires not only a password but also a salt (or a user name), which is unique for each user, the attack speed for such hashes will decline proportionally to their count (for example, attacking 100 hashes will go 100 times slower than attacking one hash).

[2] The hash is to be loaded to the program in full, to the “Hash” column - the program will automatically extract the salt and other required data from it.

[3] The ‘:’ character can be used as salt; however, since it is used by default for separating hash and salt in PasswordsPro, it is recommended that you use a different character for separating fields; e.g., space.

[4] Salt can contain special characters - single or double quotes, as well as backslash, which are preceded (after obtaining dumps from MySQL databases) by an additional backslash, which is to be removed manually. For example, the salt to be loaded to the program would be a'4 instead of a\‘4, as well as the salts a"4 instead of a\“4 and a\4 instead of a\4.

16replies
6voices
453views
Troy [TroyMac1ure]
11 years ago

0

I was going to post either a partial list or a request for something like this. A post like this should be stickied as it’s nice for noobs to be able to see examples of what different encodings look like for easy identification. I think Base-64 should be added in as well as I had never run into it before the CTF posting. Now I know what it looks like. Thanks for this post!

Keeper
11 years ago

0

  1. Those are not encodings
  2. Base64 is not a hash function and this thread is about one-way algorithms
Wibben
11 years ago

0

ome way algorithms as in you have to encode one way, and decode another, or you can only encode? (it would be pretty useless to only encode something, you won’t be able to read it later)

J [ColdIV]
11 years ago

0

You just compare the hash you are not supposed to get the real value of it.
For example if you register somewhere they will hash your password and if you login they just compare the hash in the database with the hashed version of your entered password. So they don’t have to save the passwords as text and it is more secure

Wibben
11 years ago

0

oh I see, they just change your input into a hash instead of changing their hash into text


0

wait so some websites have hashes to compare in stead of text ????
wait im confused will there website encrypt plain text to md5 to compare it or do you have to enter password as md5?

Wibben
11 years ago

0

most secure websites seem to have a javascript file encrypting the things the user inputs.

Keeper
11 years ago

0

Oh, how pathetic this thread goes.. Seems only ColdIV knows what he is talking about. Others can just kill themselves out of incompetence..

Troy [TroyMac1ure]
11 years ago

0

Sorry to start such confusion. This was a post after 10+ hours in a car with 3 kids all under 4. lol.
My thought was more of examples as to what different encodings/hash codes look like (such as MD5, base64, hex displayed ascii, etc). For someone who has never seen what a MD5 hash looks like, they wouldn’t know where to start.
I guess maybe we should have a new thread to display common examples of hashes & encodings.


0

i know what they look like i just didnt think that websites would bother encoding them if the hacker is smart enough to find passwords surely he knows how to decrypt codes :L

J [ColdIV]
11 years ago

0

One-way. No decrypting. You just can compare the found hash to a list of known hashes to find the password.
So there are some ways to find the password but it will take some time. I guess I could send you a hash of my password and you won’t be able to get my password..

Wibben
11 years ago

0

yeah but hashes aren’t perfect, time is all it take s to decrypt any hash, unless it’s originally written in jibberish

Keeper
11 years ago

0

yeah but hashes aren’t perfect, time is all it take s to decrypt any hash, unless it’s originally written in jibberish

Three times stated already in this thread. They are not being decrypted but cracked. Sometimes I think people like you can’t understand things from once or twice.

Wibben
11 years ago

0

Okay I’m sorry, cracked is what I meant. Different words may mean the same thing in different people’s minds

? [FreakILL]
11 years ago

0

@Wibben In this case you should try to avoid using both words in the same context because there is a huge difference between those two words..

Nice post btw. thanks Keeper.

Wibben
11 years ago

0

yeah I understand, back then I was going on dictionary definitions… now I know better

You must be logged in to reply to this discussion. Login
1 of 17

This site only uses cookies that are essential for the functionality of this website. Cookies are not used for tracking or marketing purposes.

By using our site, you acknowledge that you have read and understand our Privacy Policy, and Terms of Service.

Dismiss