Monthly Archives: November 2007

瑞星ARP防火墙导致网络问题,兼谈软件是否应具有道德准则

这两天出了个很有意思的新闻,是关于瑞星的。
此事源自吉林大学网络中心发布了一则通知《关于谨慎使用瑞星2008防火墙软件的紧急通知》,指明瑞星防火墙的其中ARP防护功能会导致网络充斥大量的ARP广播,从而干扰网络正常运行,并可能导致上层网关设备负载加重从而影响正常工作。
因为此声明直指瑞星产品设计有缺陷,瑞星官方的人当然坐不住了,很快官方就发表了声明“瑞星关于《吉林大学公告慎用瑞星2008防火墙》的声明”,首先否认了其有设计缺陷,其次鼓吹其ARP防护的“强大”功效,以及拿仅有吉林大学一家使用出现问题作为案例说事,最后将问题归结于吉林大学网络本身不健壮。具体解说可谓精彩,摘录如下:
   我们认为,瑞星个人防火墙2008的ARP功能不存在设计缺陷,具体解释如下:
    第一、ARP欺骗攻击是目前较为流行的一种欺骗手段,黑客可以利用ARP攻击进行病毒传播、信息监听、内容篡改、盗取网游、网银帐号等恶意攻击。为了解决这一问题,瑞星个人防火墙2008版新增加了ARP欺骗攻击防护功能。该功能可以有效地阻止因ARP攻击造成的上述各种问题,特别对网游、炒股软件等帐号的保护非常有效,因此受到广大用户的热烈追捧,并被部分用户认为是瑞星2008新品中最喜爱的功能之一。
    第二、目前,全球安全业界公认的最有效的ARP防护技术,是通过向网内发送ARP广播获取真实的IP-MAC对应关系来实现的,瑞星所采用的就是这种技术。在一个管理完善的网络中,不会存在如此频繁的ARP攻击,只有在局域网中存在大量的ARP攻击源,或者用户对ARP防火墙设置不当,才会导致此种情况发生。目前,有且仅有吉林大学称使用瑞星个人防火墙2008会造成严重问题
    第三、瑞星个人防火墙2008版缺省设置不会开启ARP防护功能,数千万用户都可以作证。事实上,即使用户开启了ARP防护功能,默认情况下也只保护用户指定的IP,除非用户自行添加其它地址。因此吉林大学公告中所说的“采用其缺省设置就会导致网络线不畅”的情况完全不属实。

(图一 该功能默认是不开启的) 

(图二,若开启此功能,默认状态只会保护特定IP地址,除非用户自行添加其它地址)
    第四、随着黑客和病毒技术的不断发展,安全产品势必不断精进技术,增加更底层更强大更复杂的功能才能保护用户,如何处理好技术的复杂性和操作的简易性之间的矛盾,是全球所有安全厂商所面临的共同课题。正因为如此,瑞星2008新品才进行了史无前例的大规模公开测试和长达半年多时间的后期产品完善工作。目前数千万用户的使用证明,瑞星2008新品在大量应用创新的底层核心技术的同时,其适用性和易用性也是最好的。
    第五、为了避免此类事件再次发生,瑞星公司建议:
    1、瑞星杀毒软件2008版及瑞星个人防火墙2008主要针对个人用户设计,对于校园网、企业网络等局域网环境,应该采用瑞星杀毒软件网络版等企业级安全产品进行防护,至少局域网本身应该拥有完善、可靠的安全管理机制,对接入局域网的用户行为进行有效的安全控制。
    2、瑞星杀毒软件2008版及瑞星个人防火墙2008新增了主动防御、ARP欺骗防护等功能。对于电脑初级用户,建议采用产品缺省设置即可。对于新产品中提供的高级设置等功能,如果用户不了解相关知识,建议不要随便修改设置。
然而事情还没算完,昨天,好事的CNBeta又放出了一则新闻《[证据]中科大、中山大学、四川大学关于瑞星ARP产品问题的说明》,证明有更多的苦主由于瑞星的这个东西导致了网络不正常。这下看瑞星怎么应对了。
对于我个人来说,新闻本身并没有什么值得关注的,我更关心导致问题的技术层面的原因以及为什么要这样做。这里先简单分析一下所谓的ARP和ARP病毒,以及瑞星的反毒措施,如果对此已经有了结的兄弟们可以跳过。
ARP,全称地址解析协议,作用于ISO七层协议的数据链路层。具体作用是将网络层的IP地址翻译为链路层的MAC地址,来使得IP数据报在链路层可以找到相对应的链路桢,从而传输到正确的目的地。假定要传输数据的双方分别为pcA和pcB,pcA要发送数据到pcB,其ip地址和mac地址分别为ipA,macA和ipB,macB,ARP工作的流程简述如下:
1,pcA发出一个arp request,这个request包含有源mac地址,为macA,还有目的地址,为FF:FF:FF:FF:FF,也就是全局域网内广播,request内容翻译成白话就是who has ipB please tell ipA。
2,局域网内所有机器都会接受此广播,同时检查request内容,发现是找ipB,则对照自己机器的ip,如果没有ipB,忽略此包,如果有,进入下一步。
3,其他机器都已经停止,唯有pcB,发现此广播的request是找自己,所以pcB发出一个回应,具体为一个arp echo,源地址为自身macB,目的地址为macA(从前面request包里拿到的),内容为ipB is at macB。
4,pcA收到这个echo,在自己协议栈内建立一个arp缓存表,表项加入ipB-macB,并往macB发送数据,这样数据就能准确到达pcB。并且在ipB-macB这个表项存在的时期,都无需再进行arp request,直接根据缓存表发送数据即可。缓存表项都有一个时间限制,到达限制后系统自动删除此项,删除后如果pcA和pcB再有通讯,就会重复步骤1。
从这几步骤来看,ARP是能够通过一个广播的request和一个单播的echo准确完成地址解析的过程的。然而这里存在一个小问题:如果pcA还没有发出request,而pcB直接发送了echo呢?按照设计应当不存在此类情况,但计算机只会按照程序办事,有不按设计来的程序,就有不按设计来的行为。在这种情况下,直接进入第4步,pcA会根据收到的echo更新自己的缓存表,因为ipB-macB这个表项原来就可能存在,此次更新其实并没有造成什么影响,因此这种情况不会出现什么异常。
然而不按设计的行为不只如此,假如有人捣乱呢?比如,有另外一台pcC直接发送了一个arp echo给pcA,内容是ipB is at macC。这时,pcA收到了echo,所以将表项无条件换成ipB-macC,这样,发往ipB的数据都将会转向macC,也就是到了pcC那里去。这时问题就严重了。本来A是要和B通讯,却把给B的数据发到了C那里,如果此数据很重要,而C看到了,那么…….那么C就有无限可能的坏事可以做了。例如现在已经有很多坏蛋在扮演C这个角色:

记录这个数据,完事后装作没事一样把数据转回B,这样A-B通讯变成了A-C-B,A和B感觉不到异常,而发送的数据可能包含密码等敏感信息,此时C就可以获得这些信息了—-此为ARP中间人式嗅探,很多黑客工具盗密码就是这么干的。

记录这个数据,同时加一点篡改,篡改部分内容为病毒代码,再转回B,此时B接到这个数据后就会因这段代码而中毒—-此为ARP病毒,所以为什么一台机器出问题导致整个网络都染毒,就是因为这个C欺骗了所有的B们,将所有数据都篡改过了。

记录并保留这个数据,但延迟发送到B,这样A-B之间的通讯感觉变慢了,或者干脆不发给B,这样A-B的通讯直接就断了 —-想起是什么了吗?对了,局域网执法官,p2p终结者之类的限速或者所谓的“管理”工具!

所以我们看到,ARP当初设计时,互联网还是一个很友好的世界,任何人都会按规矩办事,然而现在的世界大多是恶意的,总有一些捣蛋分子在乱搞,然而我们的ARP协议还在广泛应用着,难道就没有办法管制这些捣蛋分子了吗?
办法是有的,例如做ip-mac的静态绑定,避开ARP协议,或者在协议栈内加入更强化的监测机制,但总不完美,因为要人力来维护。没有更傻瓜的办法吗?于是瑞星们想出了一个歪招,让pcA不停地发arp request,这样即使有C在灌输假的arp echo,pcB因为会收到广播,也必定会返回正确的arp echo,这样只要瑞星实现一个目标:他发送request的频率总比C发送echo的频率快,则B返回正确echo的频率也必定快,那我们的正确echo就盖过了恶意echo,使得网络在大部分情况下都是正常的。
很傻的办法,不是吗?但却基本有效!只要有效,对于瑞星们,这就是技术领先,这就是商业卖点!反正用户永远是无知的!
瑞星的算盘打得好,然而,他却忘记了存在一种大型网络环境,在这环境内一个网段存在很多机器,如果在这种环境内高速率发送广播,会产生非常多的回应,多到广播本身占据的流量可能阻塞网络,多到ARP包的横行使得交换机为了不断更新自己的mac-port对应表而疲于奔命,于是…..就出问题了…..
诚然,从技术上讲,瑞星没有错,它的行为没有违反RFC关于ARP协议的规定,仅仅是对于一些建议值(arp 广播频率)作了修改,于是瑞星坚持自己是对的,然而问题确实存在,不然也不会有这么多高校出台规定,于是就有了前面的丑剧,于是就有人将其上升到商业竞争或者娱乐大众的高度去了。
技术讲完,进入第二阶段–怎样看待瑞星这次事件?
还是个人意见:这牵扯到一个软件行为的道德问题!此类行为,虽无法责令其停止,但我有权力厌恶!
道德本身的含义无需再述,而软件,也应具有道德,干正事的软件叫好软件,干坏事的软件叫病毒,然而为了干自己认为的“正事”而造成了其他方面的坏影响的,绝不能称之为好软件。
举个不是很恰当的类比例子:某女生坐公交车,嫌地面太脏,于是把自己的行李箱放在旁边座位上,过一会有人过来要求其拿掉行李箱,因为这人要坐这座位,此女生说:这个座位我多付钱要了,我就是要放行李箱。此人怒曰:有你这么坐公交的吗?总共30多座位,我付30块钱我还包车了呢!女生虽看来有理,然而从周围乘客到公交司机和售票员都无任何人站在她一边,于是只能拿掉行李箱。
再举个软件的例子:假如同样完成某功能的2个软件,一个占用很多cpu资源,另一个不多,那自然是选择后者,前者虽然没问题,但我们至少有抵制它的权力。
也就是说,软件为达成目的,肯定要有某些行为,这些行为看似合法,然而由于太霸道而影响了其他方面运行时,造成的问题就绝对应该由此软件负责而不能置身事外。所以瑞星此事,无论其怎么有道理,至少我还是厌恶其行为。
其实对于软件来说,类似的例子还是有不少的,正面的:
Windows XP和Vista的半开连接数限制,为什么要限制,就是为了不让一个桌面操作系统有对网络造成巨大影响的可能,尤其是一个面向不懂计算机知识只会使用的用户群的时候。或许很多人会不认同,我也不想阻止你破解它,但请你在占用巨大带宽与你在同一网络内的同学喊慢的时候汗颜一下。
某些下载软件的线程数限制。并非不能开高,而是开太高并无意义,徒增负担,还影响他人,TCP/IP的滑动窗口和拥塞控制本身就比较完善,开多线程本身就有抢占资源打压其他使用者的嫌疑,开得无节制的多那就是占着高速公路开拖拉机,占着茅坑不拉屎。
反面的:
XX执法官,XX终结者,XX监视岗等类软件,这类软件的行为本身就太不道德,违反RFC,虽能达成功能,但其害远大其利,以暴制暴本身就不提倡,何况以暴欺压平民,对于此类软件,借用某神人的话语:谁用谁应该被吊起来打!
迅雷,这个软件更容易惹人非议,且不论其盗链下载的行为是否有问题,光是其想尽一切办法提速,无视带来的网络负载,就不是一个好软件应有的行为。同时TCP,UDP皆上,任意使用端口,无视拥塞和并发控制,都导致了网络行为和QOS管理方面的困难,尤其是无状态UDP的大量使用使得很多底端家用路由设备经常在第一时间被打死,且无法通过软件自身控制。所以此软件虽有很强的下载能力,但不到万不得已,我个人是尽量不用的态度。
作为软件开发商,总有责任对自己软件造成的一切问题负责,这是最起码的态度问题。如果没有这种态度,我们绝对有权力BS这个厂商。
最后回到技术,吉林大学最初始发布的公告“该软件(瑞星2008防火墙)对网络的干扰和破坏力甚至大于很多计算机病毒”的结论基本正确无误,网友请自行判断使用其与否。

推荐一本好书《Windows 高效排错》

首先是内容介绍,摘自CSDN读书频道:

本书是一本介绍Windows系统上的用户态程序排错方法和技巧的书。本书分为4个章节,先介绍最重要的、通用的思考方法,以便制定排错步骤;再介绍对排错有帮助的知识点和工具;并介绍了.NET Framework(CLR)的相关知识和调试技巧;最后一章针对常见的几大类问题进行了总结。
本书案例丰富,对现实中的实际问题进行了研究,并和读者一起分析解决办法;本书的写作思路为先给出问题描述,然后提供线索,再进行分析,让读者在阅读中也进行思考,以提高实际解决问题的能力。

其次是我自己看了这部书演示用的pdf的一些感想:

用真实的案例来讲解troubleshooting和debug的步骤和过程,生动而又有深度

作者思路极为清晰,表达精准到位,能从一点点地蛛丝马迹抓起,直到起出问题根源,这种经验与技术俱佳的案例分析能让读者看完即涨大量exp,有如亲历

从debug入手来抓程序设计症结,这应该还算是国内首次有实体书出版,对于windbg的使用讲解也算是开先河了

同时适用于程序员以及系统管理员二种读者,程序员可以从中掌握一些操作系统级别的资源分配和使用原理,并通过对此的理解来使得自己代码中对于资源的使用有更加深刻的认识。而SA们也可以由此学到从系统方面剖析用户态程序的方法,从而使自己对资源的掌控能深入到应用软件层面,可以更好地维护系统的健康状况以及给应用设计提出更好地建议

跳开Windows和.net范畴,书中的很多案例的思路其实可以用于更广泛的领域,对于其他操作系统以及其他框架来说,都可以有触类旁通的感悟。

我看过其演示pdf之后,就决定着本书一定要买来一读了,而对此类知识感性趣的人,也绝对应该看一下此书。
演示章节内容链接如下:
http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html
CSDN读书频道链接:
http://book.csdn.net/bookfiles/555/
作者自己的blog文:
http://eparg.spaces.live.com/blog/cns!59BFC22C0E7E1A76!2729.entry

Macross Frontier

似乎很久没有写关于动漫的话题了,倒不是近期没有好作品或者没看。而是没有什么动力写。
4月份开播到10月份终结的作品中质量非常好的不少,像Darker Than Black,精灵守护者。然而好看归好看,确实没什么大书特书的必要,因为在这个时代,“内涵”这个词已经被滥用到让人倒胃口的程度了,即使有那么些深度的作品,拿出来谈内涵也只能吸引那些初接触动漫的人而已,一旦浸淫一段时日之后估计也会视内涵于无物。
不过今年有两部作品不得不提,一部是《樱花抄/秒速5CM》,一部是《天元突破,红莲之眼》。这两部虽然我一起提,可千万别认为是同种类的片子去一起看,否则反差得吐血别来找我。
对于秒速5CM,引用某些达人的评论:看完第二集是佳作,看完第三集才知是神作。而我的评论只有一句:新海诚是人渣!如果某些人很好奇想去看一下这部片究竟为什么会引起这么大争议的话,请在观看前务必保持一个积极向上的心态……现实就是这么残酷,但非要这么表现…….
对于天元突破,神作,确实是神作!10年以内热血无出其右XDDDDD(注:此片不适合女生以及考究狂观看,后果自负XD)
其实上面都是附带的,今天突然写这一篇的正主是这个:
超时空要塞25周年記念特番放送決定,就在12月!然后是
Macross TV版决定明年开播,名为:Macross Frontier!
官方已经放出了一段预告视频,那真是相当地让人激动,土豆观看如下:
http://www.tudou.com/programs/view/zKYd1Gi8mSY/
对于萝卜饭们来说,除了期待,不需要更多的举动了。
音乐由菅野操刀,无需担心,和森只要不神棍,作品品质应该没得跑,板野马戏依旧好看,不过这次的变形花样倒是很新鲜。
这段宣传动画的歌手没有任何资料,但据说有人听起来是坂本真绫,如果是真的话,那就太热闹了。

升级至FreeBSD 7.0-BETA3

昨天给2号机cvsup了RELENG_7的最新代码,决定在Current还没有清晰的新目标前,暂且老老实实呆在RELENG_7一阵子吧。
看了一下版本号,没想到已经是beta3了,这应该是Release前最后一个beta了吧,难道传说的这个Release不会跳票真的实现了?? XD
接下来要做的是将一部分陈旧资料(其实主要是电影存档)搬到ZFS去,然后是恐怖的gnome升级至2.20,希望顺利。时间上就凭一个破P4已经没什么奢望了,做好长期开机build的准备。
另外今天make world时发现有一个变量是可以不让make delete-old时老提示是否删除的,记录之
make BATCH_DELETE_OLD_FILES=YES delete-old
亏得以前按到手软…..

Windows 2008命名以及上市时间敲定,WSV一同公布

具体发布日期将是明年2月27日,另外WSV正式命名为Hyper-V,根据产品定位以及是否集成Hyper-V将有8个版本,包含许可和售价罗列如下:
Windows Server 2008 Standard: $999 (with five Client Access Licenses, or CALs)
Windows Server 2008 Enterprise: $3,999 (with 25 CALs)
Windows Server 2008 Datacenter: $2,999 (per processor)
Windows Server 2008 for Itanium-based Systems: $2,999 (per processor)
Windows Web Server 2008: $469
Windows Server 2008 Standard without Hyper-V: $971 (with five CALs)
Windows Server 2008 Enterprise without Hyper-V: $3,971 (with 25 […]

OpenSolaris Community Edition snv_76在VMWare中启动Panic的解决方案

OpenSolaris Community Edition(以下简称SXCE)前两天发布了snv 76版本,不过很不幸的这个版本引入了一个以前版本没有的bug,会导致如果用VMWare跑它时会在启动时panic掉并自动重起。不过还好有解决方案,如下:
用InstallCD或者DVD启动时在grub选单界面中按e,给启动项最后加一个-kd参数,然后确认按b继续启动,此时系统会boot入kmdb,然后输入“cmi_no_init/W1”,回车会出现这个变量变1的提示,然后输入“:c”,启动过程会继续,就不会panic掉了。
安装到硬盘后第一次从硬盘引导还是会出问题的,所以要按上面的再做一次,正常引导后进入系统修改/etc/system,加一句set cmi_no_init=1即可,以后引导就不会panic了,也不用每次进kmdb搞了。
另外这个bug应该会在snv_77修复。
官方bug说明在此:
http://bugs.opensolaris.org/view_bug.do?bug_id=6620982

弱智的上海移通

公司的网络一直是走得移动的企业宽带,貌似是光纤到楼的吧。3个月前去申请从2M扩容到10M。对方很早就说做好了,但是从我本地网关出口的流量监控来一直都没突破过2M。
昨天下午,网络突然不通了,于是报修。半小时后来了个扛着笔记本的技术员,把本子往出口网线处一接,ping了下对端,不通,然后就说了句去对端机房看看,就跑了。
然后就是持续到今天上午的网络瘫痪,移通的说法在换了n个版本后,网络还是依旧不通。
一上午没办法干活不行,于是再把出口接上自己看看能不能查到线索,于是发现了如下tcpdump结果:
09:55:00.006472 00:00:00:22:25:8c > ff:ff:ff:ff:ff:ff, ethertype ARP (0×0806), length 42: arp who-has 211.X.X.33 tell 211.X.X.34
09:55:01.003376 00:00:00:22:25:8c > ff:ff:ff:ff:ff:ff, ethertype ARP (0×0806), length 42: arp who-has 211.X.X.33 tell 211.X.X.34
09:55:01.763189 00:0b:be:51:b9:00 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0×8100), length 64: vlan 209, p 0, ethertype ARP, arp who-has 211.X.X.34 tell 211.X.X.33
09:55:01.791808 00:0b:46:2b:e2:82 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0×8100), length 68: vlan […]

简评OpenSolaris的Developer Preview—-Indiana

前一阵子放出来的这个玩艺儿,是属于OpenSolaris官方发布的一个发行版,这次是按照日程表放出来的Developer Preview,只是个Preview,连测试都算不上,因此feature complete自然也是不可能的。
对于这种状态的东西自然是不太敢直接在个人PC上应用了,于是跑了个VMWare来体验这个地球上技术最领先的泛用内核所构建的发行版。
还是无废话,直接谈感受:

LiveCD上用了Grub做引导,一闪而过,貌似是个0.9X版本。

刚启动跳了条版权信息,提示选键盘类型,默认en-US回车掉,然后就挂文件系统,再然后就直接引导起图形界面了,速度快得难以想象。不知是内置的SMF(Service Management Facility)强劲无比还是本身就没什么服务可以起。不过像对于sysVinit,老SMF本身速度也还算可以,功能弱一点而已。

桌面是原装Gnome,绝对原装,没掺一点其他东西,连Clearlook都没改。另外是2.20这个版本。

预装了GIMP 2.4.0, Firefox 2.0, Thunderbird 2.0, and Pidgin 2.1这么几个东西。

桌面有个图标是安装到硬盘,这个就是传说中那个Slim Install的项目的成果。比较起其他类发行版的安装界面,可以说是直入主题,必须要有的基本有,想多要的现在没。也就这么几个步骤:选分区,选语言,设置root密码并添加一个普通用户,然后就等进度条复制文件,走到头就完事了。

安装完成后Reboot,又是grub。然后发现挂载的是ZFS分区,说明Indiana这个grub至少能直接从ZFS分区做root引导了,不错的成果,不知Raid0和5的root行不行XD

同样的急速进GUI,不同的是会停在GDM了,蓝玻璃风格不错,老规矩root不让登,普通用户进去了。

安装在硬盘的Gnome和liveCD也没什么区别。没有任何Indiana专有的图形配置工具,传说中的包管理系统也没看到。

接下来,除了firefox上上网,看看简陋地堪比90年代Linux发行版的中文字体外,应该没什么能做的事情了。

说几点用VMWare玩的经验,以防地雷:

vmware tools要装,用solaris 10的版本,否则网卡驱动不起来。

其间不要让它去创建xorg.conf,否则vmware tools不知道搞出一个什么样子的键盘驱动,会让你键盘上所有键错位,导致找不到Ctrl+Alt+Del而郁闷地关掉虚拟机电源。另外默认安装似乎根本没创建起xorg.conf来,都是粗糙地用default起来的。

另外装前ln -s /usr/X11/etc/Xsession.d /usr/dt/config/Xsession.d,否则复制启动脚本会报错。

总结:
这确实是Preview,除了看看别做它想,相信你看完之后点shutdown却看到权限不够,非要起个terminal敲su root然后halt的时候就有体会了。
但这丝毫不会影响我对这个系统的期待程度,因为它有一颗活力过剩的核心,再加上ZFS,Dtrace,Container等太阳系高科技,还有像NWAM,SLIM这样从企业应用角度出发的特性项目。
有兴趣的请访问下面网址:
Get the OpenSolaris Developer Preview
伸手党请直接下载:
http://dlc.sun.com/osol/indiana/downloads/current/in-preview.iso
最后推两个评测文,第一个老外的,第二个国内的,图比较多,想看图的请移步,但对于这个东西,目前还未有从技术层次的相关文章。
http://www.phoronix.com/scan.php?page=article&item=899&num=1
http://www.qyjohn.net/?p=376

OpenSocial和Android

这几天Google的动作比较大,最引人注目的就是新推出的这两个东西了:
OpenSocial,一个开放的SNS API,外面拿它来跟Facebook比,但我认为Google的野心不止是这点。
Android,Google刚收购的一家公司,这东西是一个开放的嵌入式平台,同时包含一系列的开发生产工具,有了它就能做出有相当水准的基于Linux的移动终端。外面普遍认为这就是Gphone将要出现的前兆。
 从这两个东西来表面来看,Google现在的着眼点是新产品和服务的推出,分别应对在这两个领域的新兴贵族Facebook和iPhone。然而往深一点看,Google是在凭借本身的产品线优势去整合尚未有规范的新领域:只要将自己的API发展为既定标准,即使用户群达不到最大,也是SNS的最大赢家;同时Linux用于移动终端也是有数家企业和标准并存,只要自己支撑的产品成为新的标准,不管Gphone是否热卖,Google都会借此在以后的竞争中占据永久的主动,立于不败之地。
回头看看Google的所作所为,与微软走过的道路不约而同,这是一家企业在发展到如此地步的必经之路,从一个产品领先者脱胎换骨成为业界标准制定者。Google现在有实力和自信完成这个角色的转变。
只是不知道当Google变成又一个垄断巨头(假如可能的话)时,现在的狗fans们是否还会津津乐道现在的Google精神呢?

区分几种知名散列算法的散列值的方法

取自FreeBSD HandBook第14.4小节,刚才回顾手册时看到的。
 用 MD5 散列加密的密码通常要比用 DES 散列得到的长一些, 并且以 $1$ 字符开始。 以 $2a$ 开始的口令是通过 Blowfish 散列函数加密的。 DES 密码字符没有任何可以用于鉴别的特征, 但他们要比 MD5 短, 并且以不包括 $ 在内的 64 个可显示字符来表示,因此相对比较短的、没有以美元符号开头的字符串很可能是一个 DES 口令。