当遇到某个Hash值时,我们当然可以根据每种Hash值的不同特征来识别其可能的Hash类型,但是这一过程是十分耗时和繁琐的,而我们每个人都希望生活向更简单的方向前进。所以也就有了这篇文章。
Hash Algorithm Identifier
使用过Kali Linux或者Backtrack Linux的人,应该都知道一款名为Hash identifier的工具,这是一款十分优秀的工具,没有它,也不会有我这款工具的出现。
但是Hash identifier的代码并不是很有效率,有大量的if-else-if,并且有许多方法构造是重复的,这一切使得它的代码十分冗余。
所以我对其代码进行了重写(165行代码),并扩充了其Hash识别库,目前支持160多种Hash加密方式的识别,以后会更多。
我将这款工具命名为Hash-Algorithm-Identifier。

下载
你可以在GitHub上获取它。
使用
运行:
python HashIdentifier.py
赋予它可执行权限:
chmod +x HashIdentifier.py
执行它(一旦赋予了可执行权限,你可以通过下面的简单指令直接运行):
./HashIdentifier.py
如果你不明白上面的步骤,不用担心。在GitHub上你会找到一个名为start.sh的文件,直接运行它就可以了。
输入以下指令运行start.sh:
sh start.sh
代码介绍
我使用正则表达式来判断Hash值类型,阅读代码你会很容易发现这一点。使用正则表达式识别Hash类型可以让代码简单并且易于理解。
支持识别的Hash类型:
Adler32
Apache MD5
Blowfish crypt
Blowfish(Eggdrop)
Blowfish(OpenBSD)
CRC-16
CRC-16-CCITT
CRC-32
CRC-32B
CRC-64
CRC-96(ZIP)
Cisco IOS SHA256
Cisco-IOS MD5
DES crypt
DES hash(Traditional)
DES(Oracle)
DES(Unix)
Domain Cached Credentials 2(DCC2)
Domain Cached Credentials(DCC)
ELF-32
FCS-16
FCS-32
FNV-164
FNV-32
Fletcher-32
Fortigate (FortiOS)
FreeBSD MD5
GHash-32-3
GHash-32-5
GOST R 34.11-94
HAVAL-128
HAVAL-128(HMAC)
HAVAL-160
HAVAL-192
HAVAL-224
HAVAL-256
Joaat
Keccak-224
Keccak-256
Keccak-512
LM
Lineage II C4
Lotus Domino
MD2
MD2(HMAC)
MD4
MD4(HMAC)
MD5
MD5 apache crypt
MD5 crypt
MD5(APR)
MD5(Chap)
MD5(Cisco PIX)
MD5(HMAC(WordPress))
MD5(HMAC)
MD5(IP.Board)
MD5(Joomla)
MD5(MyBB)
MD5(Palshop)
MD5(Unix)
MD5(WordPress)
MD5(ZipMonster)
MD5(osCommerce)
MD5(phpBB3)
MSCASH2
MSSQL(2000)
MSSQL(2005)
MSSQL(2008)
Minecraft(Authme)
MySQL 3.x
MySQL 4.x
MySQL 5.x
NSLDAP
NT crypt
NTLM
Netscape LDAP SHA
RAdmin v2.x
RIPEMD-128
RIPEMD-128(HMAC)
RIPEMD-160
RIPEMD-160(HMAC)
RIPEMD-256
RIPEMD-256(HMAC)
RIPEMD-320
RIPEMD-320(HMAC)
SALSA-10
SALSA-20
SAM(LM_Hash:NT_Hash)
SHA-1
SHA-1 crypt
SHA-1(Django)
SHA-1(Hex)
SHA-1(LDAP) Base64
SHA-1(LDAP) Base64 + salt
SHA-1(MaNGOS)
SHA-1(MaNGOS2)
SHA-1(Oracle)
SHA-224
SHA-224(HMAC)
SHA-256
SHA-256 crypt
SHA-256(Django)
SHA-256(HMAC)
SHA-256(Unix)
SHA-3(Keccak)
SHA-384
SHA-384(Django)
SHA-512
SHA-512 crypt
SHA-512(Drupal)
SHA-512(HMAC)
SHA-512(Unix)
SHA3-384
SHA3-512
SSHA-1
Skein-1024
Skein-1024(384)
Skein-1024(512)
Skein-256
Skein-256(128)
Skein-256(160)
Skein-256(224)
Skein-512
Skein-512(128)
Skein-512(160)
Skein-512(224)
Skein-512(256)
Skein-512(384)
Snefru-128
Snefru-128(HMAC)
Snefru-256
Snefru-256(HMAC)
TIGER-160
TIGER-160(HMAC)
TIGER-192(HMAC)
Tiger-128
Tiger-128(HMAC)
Tiger-192
VNC
Whirlpool
XOR-32
substr(md5($pass),0,16)
substr(md5($pass),16,16)
示例输出结果
Hash Identify : MD5: e20d344649524a8dd3f534cf32c290d5

Hash Identify : MD5(phpBB3):$H$9123456785DAERgALpsri.D9z3ht120

Hash Identify : MD5(Unix):$1$12345678$XM4P3PrKBgKNnTaqG9P0T/

Hash Identify : MD5(WordPress): $P$B123456780BhGFYSlUqGyE6ErKErL01

Hash Identify : SHA-512:6da33f58a9ef00445a387a5227aeb56fda7fc09c13a5f4383b777a8048894a5a2df3f3e27eb3ffb582431cd8e1d1c9a8bb7e4c53e74e802ed829d81ced395f34

Hash Identify : Tiger-192:f9f37d1da72799ae1a0d73033be6b54560e938a01334818f