2013年12月

几种常见的hash加密

转自国外某论坛

---------------*nix系------------------------
系统:ES(Unix)
例子: IvS7aeT4NzQPM
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:第1、2位为salt,例子中的'Iv'位salt,后面的为hash值

系统:MD5(Unix)
例子:$1$12345678$XM4P3PrKBgKNnTaqG9P0T/
说明:Linux或者其他linux内核系统中
长度:34个字符
描述:开始的$1$位为加密标志,后面8位12345678为加密使用的salt,后面的为hash
加密算法:2000次循环调用MD5加密

系统:SHA-512(Unix)
例子:$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEm
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:开始的$6$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-512加密

系统:SHA-256(Unix)
例子:$5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqi
说明:Linux或者其他linux内核系统中
长度: 55 个字符
描述:开始的$5$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-256加密

系统:MD5(APR)
例子:$apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.
说明:Linux或者其他linux内核系统中
长度:37个字符
描述:开始的$apr1$位为加密标志,后面8位为salt,后面的为hash
加密算法:2000次循环调用MD5加密

-----------------windows------------------------------------------
系统:windows
例子:Admin:b474d48cdfc4974d86ef4d24904cdd91
长度:98个字符
加密算法:MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))

------------------mysql--------------------------------------------
系统:mysql
例子:606717496665bcba
说明:老版本的MySql中
长度:8字节(16个字符)
说明:包括两个字节,且每个字的值不超过0x7fffffff

系统:MySQL5
例子:*E6CC90B878B948C35E92B003C792C46C58C4AF40
说明:较新版本的MySQL
长度:20字节(40位)
加密算法:SHA-1(SHA-1($pass))

------------------其他系统---------------------------------------------

系统:MD5(WordPress)
例子:$P$B123456780BhGFYSlUqGyE6ErKErL01
说明:WordPress使用的md5
长度:34个字符
描述:$P$表示加密类型,然后跟着一位字符,经常是字符‘B’,后面是8位salt,后面是就是hash
加密算法:8192次md5循环加密

系统:MD5(phpBB3)
说明:phpBB 3.x.x.使用
例子:$H$9123456785DAERgALpsri.D9z3ht120
长度:34个字符
描述:开始的$H$为加密标志,后面跟着一个字符,一般的都是字符‘9’,然后是8位salt,然后是hash 值
加密算法:2048次循环调用MD5加密

系统:RAdmin v2.x
说明:Remote Administrator v2.x版本中
例子:5e32cceaafed5cc80866737dfb212d7f
长度:16字节(32个字符)
加密算法:字符用0填充到100字节后,将填充过后的字符经过md5加密得到(32位值)

------------------------md5加密--------------------------------------------

标准MD5
例子:c4ca4238a0b923820dcc509a6f75849b
使用范围:phpBB v2.x, Joomla 的 1.0.13版本前,及其他cmd
长度:16个字符
其他的加salt及变形类似:

md5($pass.$salt)
例子: 6f04f0d75f6870858bae14ac0b6d9f73:1234

md5($salt.$pass)
例子:f190ce9ac8445d249747cab7be43f7d5:12

md5(md5($pass))
例子:28c8edde3d61a0411511d3b1866f0636

md5(md5($pass).$salt)
例子:6011527690eddca23580955c216b1fd2:wQ6

md5(md5($salt).md5($pass))
例子: 81f87275dd805aa018df8befe09fe9f8:wH6_S

md5(md5($salt).$pass)
例子: 816a14db44578f516cbaef25bd8d8296:1234

md5($salt.$pass.$salt)
例子: a3bc9e11fddf4fef4deea11e33668eab:1234

md5($salt.md5($salt.$pass))
例子: 1d715e52285e5a6b546e442792652c8a:1234

-------------------------完---------------------------

几种常见的cms密码加密方式

1.Discuz

$pw = md5(md5($password).$salt); 

2.74cms(骑士CMS):

$password_hash=md5(md5($password).$pwd_hash.$QS_pwdhash);   

其中:

$pwd_hash=randstr(); 
$QS_pwdhash=randstr(16); 

代码:

function randstr($length=6) 
{ 
$hash=''; 
$chars= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#!~?:-='; 
$max=strlen($chars)-1;   
mt_srand((double)microtime()*1000000);   
for($i=0;$i<$length;$i++)   {   
$hash.=$chars[mt_rand(0,$max)];   
}   
return $hash;   
} 

3.phpcms

$salt = substr(uniqid(rand()), -6); 
$password = md5(md5($password).$salt); 
注:uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID 

4.dedecms

$password = $row['pwd']; 
$pwd = substr($password, 5, 20); 

5.EmpireCMS(帝国CMS):
提供三种加密方式:

$user_dopass=0;//密码保存形式,0为md5,1为明码,2为双重加密,3为16位md5
.. 
.... 
..... 
if(empty($user_dopass))//单重md5 
{ 
  $password=md5($password); 
  $oldpassword=md5($oldpassword); 
} 
elseif($user_dopass==2)//双重md5 
{ 
  $salt=make_password($user_saltnum); 
  $password=md5(md5($password).$salt); 
  $sa=",".$user_salt."='$salt'"; 
} 
elseif($user_dopass==3)//16位md5 
{ 
    $password=substr(md5($password),8,16); 
    $oldpassword=substr(md5($oldpassword),8,16); 
}

是时候静下心来好好学技术了

大三一学期很快就要过去了,自己总结反思学习成果没多少。课程学习还是那样渣渣,技术方面呢也没大的进步,现在又临近期末了,先安心准备考试吧,现在这倒数xx的成绩想想确实挺对不起父母亲。原以为自己是有觉悟 有上进心的,但是选择这样荒废课程但技术又不上不下的地步着实很尴尬。

自我反思还是浮躁,学东西没有很好的静下心来。技术关键点都只是看看略过去,一没有实践操作,二也没有自己分析 理解漏洞原因。接下去的关键就是戒骄戒躁,除了课程、恋爱、工作,技术学习的时间要多多腾出来,毕竟这决定着以后就业和未来职业道路的发展。

想要过上美满的生活,现在就必须努力,不然这样美好的生活凭什么属于你?