在《免费MD5破解、查询网站——让CMD5这个骗子站长去死吧》这篇文章里面我有说过16位MD5与32位MD5的转化关系为单向的,即只能由32位转化为16位,而不能由16位转化为32位。

前几天的时候在友链中看见一位博主写了一篇文章《16位MD5密码转化为32位MD5密码案例解析》当时看到这个标题的时候很震惊,因为这个算法是公认的不可逆转换,他是如何转换而来的?或者是我已经落伍了?

仔细看文章,我们不管uchome的加密方式,只看MD5转化相关的东西。

他在文中提到

16位MD5密码转化成32位MD5密码的公式为Y=substr(X,8,16),Y代表16位MD5密码,X代码32位MD5密码。
这里的加密方式是md5(substr(md5($password),8,16).’b53ec9是salt随机产生的字符’)

一般而言,16位MD5密码通常是32位MD5密码去掉首尾各八位后产生的16位字符串,即我前文说的取第9到24位字节,而舍弃前8位和后8位总计16位字节。

他们之间的单向转换关系就在于此,因为32位MD5加密的随机性,32位转换为16位之后,被舍弃的那16个字节是无法的出来的。
所谓的16位对应的32位不可逆转的重点就在于这16位字节。

这个算法是公认的不可逆加密,只能碰撞,无法双方互转。

而我在表述了以上意见之后

lty 于 2010-5-28 19:37:50 回复:不好意思,我们的的确确把1万多用户从16位MD5转化成32位MD5了。你的是理论,我们的是实践。我们相信科学。

赤果果的鄙视(#‵′)凸啊!,本大王很生气!

再回过头去看其中代码,他的加密函数是

$salt = substr(uniqid(rand()), -6);
$password =md5(substr(md5($password),8,16).’b53ec9′);

if($isprotected)
{
return -8;}}
if(!$ignoreoldpw && $data['password'] !=md5(substr(md5($oldpw),8,16).’b53ec9′)) {
return -1; }
$sqladd = $newpw ? “password=’”.md5(substr(md5($newpw),8,16).’b53ec9′).”‘” : ”;
从中可以看出,这个转化已经不是能称之为的16位MD5转32位,这个加密已经不标准。
他的意思应该是这样,先对密码进行32位加密,然后从第8位开始取出16位的md5值。
然后把取出的16位md5与随机产生的6位salt值(他已经强制定义为b53ec9)连接到一起生成22位的字符,之后再对新生成的22位字符进行32位md5加密。
说到底就是把32位的md5进行变异,使之无法破解。
他在文章末端写到:

为了达到转化的目的,在16位MD5密码转化成UCHME32位MD5密码过程中我们把UCHOME随机产生的6位字符串特定了某个6位字符串。这是一篇简单研究的文章,没有定律意义,仅供有这方面数据库转化需求者参考。

即刚刚说的“把这个16位md5与随机产生的6位salt值连接到一起生成22位的字符”,这个已经不能称之为16MD5转32位(对16位MD5进行字符添加再二次加密还能成为“转换”?)。

仅仅是一个数据变异而已。

本文来源于:文摘文档。转载请保留这个链接,不会对你的SEO大业产生影响。

18 回应 至“”关于《16位MD5密码转化为32位MD””

  1. 以前学密码学时研究过MD5。

  2. 这个算法是公认的不可逆加密,只能碰撞,无法双方互转。
    .-= 吃饱了撑着,挥别 GoDaddy ! =-.

  3. 大王,请问“下方有一个显示最新文章”怎么弄的?

  4. 文章标题哪有什么可行性?是该文所介绍的方法的可行性探讨吧?呵呵。
    .-= z-blog各栏目分类实现自定义模板 =-.

  5. 谢谢大王对《16位MD5密码转化为32位MD5密码案例解析》一文的思考了理解。其实你误解了我的本意。我并非要说MD5直接都是可以转化的,我说的是在Uchome平台基础上进行16位MD5密码转化为32位MD5密码的一个案例分析。我侧重的是为这方面转化有需要的人提供资料。其实MD5在某些环境下确实是可以相互转化的。我考虑的是去解决问题。而你考虑的是本身MD5转化的定律问题。我也这么认为:MD5是单方向的,原则上是无法破解的,市面用的都是暴利破解。
    .-= 高考,祝福你们金榜题名 =-.

  6. 觉得就像看天书一般。。。
    .-= 健身杂记 =-.

  7. This is actually based on source conversion process in which plain text is converted into cipher text that is the symbol of source code of that. Thanks for sharing your nice views.

  8. 留个记号,慢慢看

留下回复