linux常见的面储存方式
unix下:
$1开头为MD5
$5开头为SHA256
$6开头为SHA512
$y$开头为yescrypt
DES和明文开头无标记
1.
系统:DES(Unix)
例子: IvS7aeT4NzQPM
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:第1、2位为salt,例子中的’Iv’位salt,后面的为hash值
2.
系统:MD5(Unix)
例子:$1$12345678$XM4P3PrKBgKNnTaqG9P0T/
说明:Linux或者其他linux内核系统中
长度:34个字符
描述:开始的$1$位为加密标志,后面8位12345678为加密使用的salt,后面的为hash
加密算法:2000次循环调用MD5加密
举例:
密文:$1$73$aCtXgEDmSyXAyRHJ.87e.0
明文:r9n3d2p6
unix系的md5 crypt算法,$1$作标示用,73是salt,aCtXgEDmSyXAyRHJ.87e.0 就是salt过的hash
linux下用openssl命令可以复现,具体命令:openssl passwd -1 -salt 73 r9n3d2p6
php里可以用这个函数 http://php.net/manual/en/function.crypt.php
cmd5好像只支持8位salt的md5 crypt,所以想破解的话只能自己用JTR啥的跑了,好在是md5,很快的。
3.
系统:SHA-512(Unix)
例子:$6$12345678$U6Yv5E1lWn6mEESzKen42