QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 888|回复: 2

求助:一个关于密码的问题

[复制链接]
发表于 2005-11-23 18:43:38 | 显示全部楼层 |阅读模式
操作系统为uclinux,boa webserver
我的密码明文为123456,经过加密后得出的字符串为$1nqJS8DoIhFA,
经过分析,我发现加密后得出的结果的长度总是13位(即使我用123为密码也是得出这个结果).
请问各位老大:用什么加密算法会得到这样的结果?或者说这是使用的什么加密算法?是DES吗?是MD5吗?谢谢!
发表于 2005-11-24 10:17:02 | 显示全部楼层
不清楚,看passwd源码吧
回复

使用道具 举报

发表于 2005-11-24 20:27:58 | 显示全部楼层
一般的Linux系统采用DES和MD5结合的加密方法。先以密码作为种子用DES加密,然后用MD5存储在shadow文件中。MD5散列算法理论上是不可逆的。最近一年传出山东大学王小云教授破解MD5算法只威胁数字签名等体制。
Linux中有一个crypt(key, salt)函数,可以man一下。key为密码明文,salt是为增加破译难度增加的参数,以前的crypt中salt为两字节,现在好像6字节。在使用passwd时,系统会自动随机生成salt,所以使用同样的密码在shadow中出现不同的加密串是很正常的。大家会发现shadow中密文前都有$1$xxxxxx$(记得不太清楚,总之有几个$符号分隔,SuSE好像是$3$)那个就是salt,而后面那一段才是真正的密文。大家可以crypt一下证明这一点。
至于为什么密码明文无论多少位都生成相同位数的密文,这个是因为MD5是一种摘要算法,512bit为一块,对于不足512位先补齐再进行散列运算。最后得出128bit(32个十六进制字符)摘要。想进一步了解MD5算法可以下载这个文件http://www.ietf.org/rfc/rfc1321.txt
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 02:33 , Processed in 0.082988 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表