Archive for 十二月, 2011

该来的总会来譬如2012

就快要新年了,总是忍不住要回眸走过的一年,计算下得失。这算是一种坚持、一种寄托、一种慰藉吧。

我想看看去年这个时候我给自己写了些什么,可惜没翻到,只找到了在农历新年里随手记下的几个《一闪而过的念头》,因为去年是给科协人写的新年献辞。那些念头算是自己在2011年里的愿望吧。大约完成了一小半,没完成的一些是因为时间关系,一些是念头由当时的冲动产生,之后就再无兴趣拾起了。

这一年的主题就是就业了,大概也是这一年做的唯一一件正事。在记不清数量的“过了”和“挂了”之后,找到了自己还算满意的工作,不在薪酬,不在公司大牌,不在工作城市,而是所从事的工作是我想要做的。另一件还算是一件事的事就是从科协离任了。

这一年感觉自己成长得要比前两年快。专业课程的深入学习让我对之前自学内容的模糊印象逐渐丰满起来,知识体系迅速地扩充和完善,并且有了更趋本质的认识,有种“温故而知新”的感觉。参加的社交活动也多了许多,因找工作获得的笔试面试让我有更多的机会走出校园,在外面跑跑,有机会接触到更多的人,以及他们的经历、故事和观点,交了些不错的朋友;看得多,听得多,想得多,多元的思维的碰撞和眼界的拓宽让我思维活跃,人也开朗起来,是一种人变“大”的感觉。

这一年依旧我行我素,感情用事,没有太多的计划,亦没有太多变化去打乱那些不太多的计划,只坚持自己要做的。我似乎(注意是“似乎”)是个不太喜欢做大家都做的事情的人,譬如身边一群人去考研了,我没考;一群人去华为了,我不去。我的目标只类似黑暗中一个模糊的斑点,看不清到底是个什么样子。幸好在我的意识和行动上都在努力靠近它,最终结果似乎还不错,譬如大二那年我对妈妈说我想去哈尔滨参加信安大赛,我去了;大三那年去北京晓刚带我去熊掌大厦,我默想一年后在这里工作,现在我就要去了。脾气似乎也见长,不再那么温和了,自我的主见开始加强,发怒的次数变多,断了几个原来的朋友,和宿舍同学的距离进一步拉大。另外,吃素一年了。

在今年末尾的几个月,基本是在睡、吃、读书和文艺活动中度过的。压力骤减后体重增加,脸色变好,皮肤变好。重新回到科协和大家过了一个多月,大家交流互动增加,恢复了freetalk,做了些有意思的分享,也看到了大家平日肃穆表情外的另一面。还有一个有意思的发现是在定下工作后有些人对我的态度发生了微妙的变化,一些以前不吊我的人开始和气地跟我讲话,我除了嗯啊应付继续不吊他们。

对于新年,我们总是祈望的,祈望能更好。不过容我略微思索,这些更好究竟是我们努力去争取的,还是随着时间推移它自身就是那样变化的。2012,我仍然有些念头。

1、尝试些电子产品,比如Kindle Touch,iPad,单反。

2、学习摄影,在毕业季回校时能拍一些好照片。

3、抽时间把大巴上的旧博客迁过来。

4、顺利地做毕设,不贪心优秀。

5、努力工作,明年的招聘季能助有意向加入百度的同学一臂之力。

6、毕业旅行,地点不能再是平原或丘陵了。

7、好好利用北京的高校资源,参加社区及文艺活动。

8、继续等那个总会有的姑娘找我,还是我要稍微主动点,没太明白。

9、在北京租到公租房,唉,这真的纯粹是个念头了。

想到了明天就逝世一周年的史铁生的一句话——“死是一件无须乎着急去做的事,一个必然会降临的节日”。所以不管过去的一年是欣喜是悲伤地度过了,该来的总会来的,譬如2012。慢一些,再慢一些,淡定些,再淡定些,然后踏实地做好眼下的事情。

最后的最后,当然是祝福。祝福我的家人和朋友,能有健康的身体,有美好的未来。

1 Comment

MD5是加密算法吗?

最近各种暴库,各种明文密码,各种专家写了一篇又一篇分析文章,甚至有无知的网站站长说自家的存储用户密码是经过MD5“加密”的而非明文,所以是安全的。在学习更复杂深奥的密码学理论之前,我们还是首先来清理一下基本概念。

MD5的作用不是加密,不是加密算法!

MD5,是Message Digest 5的缩写,是一种散列算法,又称为摘要算法或哈希(Hash)算法。MD5由其前身MD4改进而来,与其同属一类的算法还有SHA-1等。MD5算法的作用是将不定长的数据经过与、或、非、异或、移位、模幂等运算,产生定长的数据输出,称为散列值。通常情况下,不同的输入得到不同的散列值。优秀的散列算法即使输入差别甚微,都会导致输出大为不同,称为“雪崩效应”。散列算法常与公钥密码体制的加密算法共同使用,以检验数据的完整性。

与加密算法不同的是散列算法没有密钥,并且是单向的,即不能由正向的散列过程推到出逆向的“还原过程”。容易混淆的一点是人们认为加密就是把有具体意义的明文转换成没有意义的密文,这样看来,MD5“确实”是一种“加密算法”。然而对数据加密的目的还不仅于此,不但要让非接收方不能轻易得到明文,还要让接收方有快速的方法得到明文,即为解密。解密和破解是两个概念,解密(decryption)是加密的逆向算法,接收方已知解密密钥,使用解密算法计算得到明文;破解(crack)是在不知道密钥的情况下,采用概率统计、差分分析、暴力尝试等方法得到明文。将MD5值还原成散列前的值只能称为破解,而非解密。

现代密码学将密码体制分为两种,对称密码体制和非对称密码体制(公开密钥加密体制)。MD5不属于两者的任何一种密码体制,不能仅依靠MD5等散列算法进行保密通信。

王小云不是找到了MD5算法的逆向算法

如上文所提及的,通常情况下,不同的输入得到不同的散列值。然而存在一种情况是不同的输入却得到了相同的散列值,称之为“碰撞”。尽管优秀的散列算法应当极力避免碰撞的出现,但理论上是不能完全避免的,所以MD5和SHA-1等散列算法中存在碰撞。山东大学的王小云教授提出了一种比较快的找到碰撞的方法,而不是研究出了任何MD5值都可以被逆的逆向算法,MD5算法仍然是不可逆的。

网上有许多破解MD5值的网站,多是通过正向计算消息值的MD5值,制表存于数据库中,供用户反查。这样的库已经非常庞大,无论是常见的或是不常见的,都可以通过MD5值查到其原始消息,极其鲜见的也可以通过分布式计算在有限的时间内计算出。所以,网站存储仅由MD5散列过的用户密码,一旦泄漏仍然是不安全的。

最后,我想起了大三是网络安全课的老师freebird_007告诫我们的一句话,科班出身的学生就是需要专业,专业地说话,专业地做事。

(我时常思考加密和编码本质的联系是什么;散列算法能不能称为“广义的加密算法”呢,但目前我仍然坚持严格的定义。)

3 Comments