密码HASH特点
hash大家都不陌生,不同的hash又不一樣的特征,今天的主要內(nèi)容就是帶大家一起來學(xué)習(xí)了解一下不同的hash。
MD5
md5大家是最不陌生的,我們常見的有32位、16位。下面看一下字符串‘a(chǎn)dmin’經(jīng)過md5加密后的hash值:
md5(admin,32) = 21232f297a57a5a743894a0e4a801fc3md5(admin,16) = 7a57a5a743894a0e
加密來源
http://www.cmd5.com/
MD5的特征就是由大寫字母、小寫字母以及數(shù)字組成的32位或者16位的字符串。
MySQL
關(guān)于mysql的用戶hash一般分為兩種,一種是老版本的hash在版本小于4.1的數(shù)據(jù)庫,一種是最新的加密方式,下面一一介紹。
MySQL-Old
MySQL-Old是當(dāng)服務(wù)器生成長密碼哈希值時,允許維持同4.1之前的客戶端的向后兼容才用的,我們來看一下字符串‘123456’經(jīng)過MySQL-Old加密后的hash,如下:
565491d704013245
使用這種加密需要設(shè)置mysql,打開old_passwords選項,使用如下命令打開:
set old_passwords=on;
測試結(jié)果如圖:
MySQL-Old的特征是第一位和第九位是0到7的數(shù)字,其他的是小寫字母加數(shù)字的組合。
MySQL-new
在新的mysql版本,字符串’123456‘經(jīng)過加密后的hash如下:
*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
這個hash的特征是首位為*號,后面由大寫字母和數(shù)字的組合公40位。
blowfish
Blowfish算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法,可用來加密64比特長度的字符串。我們最常見的是使用php對密碼進行hash操作,字符串‘a(chǎn)dmin’經(jīng)過Blowfish算法加密后的結(jié)果如下:
salt:mynameismyh0stthisistest
$2a$07$mynameismyh0stthisisteObpeGOQX6ayyzilPpLnt3/Ia5YhnZUG
加密方式
<?php
crypt('admin', '$2a$07$mynameismyh0stthisistest$')
?>
對比hash以及salt,可以看出來,hash的前29位是可以知道的,剩下的31位是經(jīng)過加密后生成的。
Joomla
Joomla!是一套全球知名的內(nèi)容管理系統(tǒng),所以遇到它的加密hash的情況比較多,而且對于不同的版本有不同的加密方式,下面就一一介紹:
1.密碼長度為65位的中間存在':'的 一般都是md5的加密
加密函數(shù)如下:
md5($password.$salt);
字符串’admin‘經(jīng)過加密后的結(jié)果如下:
$salt = ’1myh0stmyh0stmyh0stmyh0stmyh0st1‘
ed123ac774848c80369a71c9d3fc2348:1myh0stmyh0stmyh0stmyh0stmyh0st1
2.如果密碼長60位 前面是“$2y$”類似這種字符開頭的話 使用的是 crypt() 的加密方式
加密函數(shù)如下:
password_hash($password, PASSWORD_BCRYPT);
字符串’admin‘經(jīng)過加密后的結(jié)果如下:
$2y$10$/CpTcHb.CwuUvKXHMjn.U.miYQlhT5aFTOoR5v7C53mCeURF8BQNC
VBulletin
vBulletin 是世界上用戶非常廣泛的PHP論壇,很多大型論壇都選擇vBulletin作為自己的社區(qū)。vBulletin的加密方式是:
md5(md5($pass).$salt)
字符串’admin‘經(jīng)過加密之后的密碼hash如下:
$salt=myh0st
2c995e56751e249db3d8a92a0ce06b87:myh0st
國內(nèi)的Discuz!論壇也采用的是這樣的加密方式。
phpBB3
PhpBB3是一個基于Apache,MySql的PHP論壇程序,應(yīng)用也比較廣泛,字符串‘a(chǎn)dmin123’經(jīng)過phpBB3的最想念版加密方式加密后的hash如下:
$2y$10$/ulvVKVLAmnnHTmgGoU6v.spv8zcXHda1Ip6o4ey1a1Zh/ileVibC
如果獲取到hash?我是新安裝了了一個phpBB3的程序,從數(shù)據(jù)庫里查出來的。對于不同版本的phpbb有不同的加密方式,下圖中所有加密方式,都是phpbb曾經(jīng)用過的,不同的版本hash有不一樣的特征,需要一個一個的測試,有興趣的小伙伴可以挨著測試一下。
Wordpress
Wordpress大家都很熟悉了,是一款知名的博客程序,字符串‘a(chǎn)dmin’經(jīng)過Wordpress的加密方式加密后的結(jié)果如下:
$P$Ba6iDBlMOmFPodK5crh011brnHCYBi0
從上面的hash可以看出Wordpress的加密后的特征是hash前面是以$P$開頭的。
Drupal
Drupal是全球三大開源內(nèi)容管理系統(tǒng)之一CMS,字符串‘a(chǎn)dmin’經(jīng)過最新版Drupal的加密方式加密后的結(jié)果如下:
$S$Eob5FLkSlZTiyFVGT1eNN6KgtJvr0wuJcdI7Knz/3SxRYQ0ytlVi
這是最新版8.3.7生成的hash,從上面可以看出hash特征是以$S$開頭,后面有52為的字符串。
sha512crypt, SHA512(Unix)
這個加密方式在unix下對用戶密碼的hash方式,字符串‘a(chǎn)dmin’經(jīng)過hash之后的密文如下:
$6$B.x74T.A$/t1xvomJK/ibsSdm3Ud991bq/4iK.Ci5ApAUbxsSgBz8Un2AnDGQJg3YMLCCHGig16a8hB0CD7WUtllf8KgwZ.
從上面的hash可以看出,這類hash是以$6$開頭的,中間有八位的salt,后面22位是加密后的字符串。
除了以上的hash類型,還有很多其他各種各樣的hash,破解工具推薦hashcat,具體可以參見之前的文章《密碼破解那些事》
在處理密碼字典時常用命令
在進行破解操作時,密碼字典是非常重要的,通常密碼字典是非常大的,如何對密碼字典進行去重、統(tǒng)計操作是非常關(guān)鍵的,用到的工具是sort、uniq,這是linux下的小工具,也可以從cygwin下分離出這兩個exe版的小工具拿來使用。
常用命令解釋
sort pass.txt | uniq -c > temp.txt
在得到一個密碼字典之后,我們可以利用上面的命令對密碼文件進行排序去重統(tǒng)計重復(fù)次數(shù)
sort -r -k 1 temp.txt > temp2.txt
上面命令是對已經(jīng)去重統(tǒng)計出來的文件進行二次排序,使出現(xiàn)次數(shù)最多的密碼排到前面,這樣可以了解用戶的密碼習(xí)慣,哪些密碼是最常見的,然后針對性的可以統(tǒng)計出一些常用的弱口令。
小總結(jié)
在分析大的密碼字典的時候,這兩個命令是經(jīng)常用的,大家可以結(jié)合我之前寫的文章《關(guān)于密碼字典那些事》,使用Python或者其他工具,分析字典,然后處理字典,針對不同的目標(biāo),獲取不同的專用字典,可以大大的提高成功率。
總結(jié)
- 上一篇: iOS中持久化存储SQLite(一)
- 下一篇: iOS中SQLite持久化存储第三方库F