密码故事——通过MD5了解不对称加密 Zfund量化套利

MD5的全称是Message-Digest Alg orithm5(信息-摘要算法),在90年代初由Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

MD5的简介

MD5是一种散列(Hash)算法,散列算法的用途不是对明文加密,让别人看不懂,而是通过对信息摘要的比对,防止对原文的篡改。通常对散列算法而言,所谓的“破解”,就是找碰撞。

MD5是把一个任意长度的字节串加密成一个固定长度的大整数(通常是16位或32位),加密的过程中要筛选过滤掉一些原文的数据信息,因此想通过对加密的结果进行逆运算来得出原文是不可能的。

MD5的应用

关于MD5的应用,举个具体的例子吧。例如你在一个论坛注册一个账号,密码设为“qiuyu21”。此密码经过MD5运算后,变成“287F1E255D930496EE01037339CD978D”,当你点“提交”按钮提交时,服务器的数据库中不记录你的真正密码“qiuyu21”,而是记录那个MD5的运算结果。然后,你在此论坛登录,登录时你用的密码是“qiuyu21”,电脑再次进行运算,把“qiuyu21"转为“287F1E255D930496EE01037339CD978D”,然后传送到服务器那边。这时服务器就把你传过来的MD5运算结果与数据库中你注册时的MD5运算结果比较,如果相同则登录成功。

也就是说,服务器只是把MD5运算结果作比较。你也许会问,服务器为什么不用直接对你的密码“qiuyu21”进行校验呢?因为如果服务器的数据库里存的是你的真实密码,那么黑客只要破解了服务器的数据库,那么他也就得到了所有人的密码,他可以用里面的任意密码进行登录。但是如果数据库里面的密码都是MD5格式的,那么即使黑客得到了“287F1E255D930496EE01037339CD978D”这一串数字,他也不能以此作为密码来登录。

MD5的破解

现在再来谈谈MD5的破解。假设你是攻击者,已经得到了“287F1E255D930496EE01037339CD978D”这一串数字,那么你怎么能得出我的密码是“qiuyu21”呢?因为MD5算法是不可逆的,你只能用暴力法(穷举法)来破解,就是列举所有可能的字母和数字的排列组合,然后一一进行MD5运算来验证运算结果是否为“287F1E255D930496EE01037339CD978D”,“qiuyu21”这个密码是7位英文字符和数字混合,这样的排列组合的数量是个天文数字,如果一一列举,那么在你有生之年是看不到了。所以只有使用黑客字典才是一种有效可行的方法,黑客字典可以根据一些规则自动生成。例如“qiuyu21”这个密码,就是一种常见的组合,规则是:拼音+拼音+数字,拼音总共大约400个,数字以2位数100个来算,这种规则总共约400*400*100=16,000,000种可能,使用优化的算法,估计用1秒就能破解吧。就算考虑到字母开头大写或全部大写的习惯,也只会花大约10几秒时间。如果是破解你熟悉的某个人的密码,那么你可以根据你对他的了解来缩小词典的范围,以便更快速的破解。这种破解方法在很大程度上依赖于你的运气。

MD5碰撞

最后谈谈MD5的碰撞。根据密码学的定义,如果内容不同的明文,通过散列算法得出的结果(密码学称为信息摘要)相同,就称为发生了“碰撞”。因为MD5值可以由任意长度的字符计算出来,所以可以把一篇文章或者一个软件的所有字节进行MD5运算得出一个数值,如果这篇文章或软件的数据改动了,那么再计算出的MD5值也会产生变化,这种方法常常用作数字签名校验。因为明文的长度可以大于MD5值的长度,所以可能会有多个明文具有相同的MD5值,如果你找到了两个相同MD5值的明文,那么你就是找到了MD5的“碰撞”。 散列算法的碰撞分为两种,强无碰撞和弱无碰撞。还是以前面那个密码为例:假如你已知“287F1E255D930496EE01037339CD978D”这个MD5值,然后找出了一个单词碰巧也能计算出和“qiuyu21”相同的MD5值,那么你就找到了MD5的“弱无碰撞”,其实这就意味着你已经破解了MD5。如果不给你指定的MD5值,让你随便去找任意两个相同MD5值的明文,即找“强无碰撞”,显然要相对容易些了,但对于好的散列算法来说,做到这一点也很不容易了。

值得一提的是,强无碰撞已经被中国的王小云老师给搞定了,她提出的算法可以在短时间内找到碰撞,在世界上引起了轰动,现在的电脑大约一两个小时就可以找到一对碰撞。遗憾的是,找到强无碰撞在实际破解中没有什么真正的用途,所以现在MD5仍然是很安全的

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容