<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky6.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/paodiao" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/paodiao" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 22 Aug 2007 02:41:10 GMT</lastBuildDate><title>跑调印象</title><description>跑调的博客生活</description><link>http://mypd.136.tofor.com/</link><language>zh-CN</language><copyright>&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://js.users.51.la/995674.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script src=&amp;quot;http://www.google-analytics.com/urchin.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;_uacct = &amp;quot;UA-1829491-2&amp;quot;;urchinTracker();&amp;lt;/script&amp;gt;</copyright><pubDate>Wed, 12 Sep 2007 06:26:22 GMT</pubDate><dc:date>2007-09-12T06:26:22Z</dc:date><dc:language>zh-CN</dc:language><dc:rights>&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://js.users.51.la/995674.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script src=&amp;quot;http://www.google-analytics.com/urchin.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;_uacct = &amp;quot;UA-1829491-2&amp;quot;;urchinTracker();&amp;lt;/script&amp;gt;</dc:rights><item><title>妥协？已注册博客不强制实名</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253623/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=72</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=72&amp;key=7eb5e752</trackback:ping><description>&lt;strong&gt;腾讯科技讯&lt;/strong&gt;8月22日9:27消息，中国互联网协会秘书长黄澄清向腾讯科技表示：&amp;ldquo;国内现在有超过3000万的博客，在21日公布的《博客服务自律公约》中虽然鼓励博客实名制，但是我们不会强制已经注册的博客实行实名制。&amp;rdquo;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　&lt;strong&gt;已注册博客不强制实名&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　8月21日，中国互联网协会公布了《博客服务自律公约》，人民网、腾讯、新浪、搜狐、网易、MSN中国、千龙网、等十多家知名博客服务提供商共同签署。在公约中对博客实名制提出了要求。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　据7月17日中国互联网信息中心发布的第20次中国互联网报告显示，在中国已经有近1/5（19.1%）的网民青睐在网上写博客，即博客作者约有3094万人。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　黄澄清表示：&amp;ldquo;对于博客实名，我们会采用鼓励的方式让用户接受实名制，绝非强迫。&amp;rdquo; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　此外，黄澄清还透露，博客实名制的推行将是逐步开展，需要一个过程。让所有的博客马上全面推行实名也不可能。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　&lt;strong&gt;否认博客服务自律公约缺乏可操作性&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　就在《博客服务自律公约》发布后不久，就有业内人士提出了许多质疑。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　一位业内人士称：&amp;ldquo;博客服务自律公约缺乏可操作性。其中要求博客网站保护用户的注册信息。哪个网站能够做到这一点呢？&amp;rdquo; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　对此，黄澄清否认缺乏可操作性。他表示：&amp;ldquo;十多家博客服务提供商既然签署了这个公约，那么就有责任保护用户的隐私。如果承诺了，却把用户的注册信息泄漏了，我们有举报电话，用户举报后，互联网协会会警告该博客服务提供商，并对外公布。不过，这个公约不是法律层面上的，所以作为互联网协会来说，也只能通过道德谴责的方式进行监督。&amp;rdquo; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　　很多人士发现，一些较早提供博客服务的博客网、BLOGCN等网站没有加入《博客服务自律公约》。对于这个疑问，黄澄清答复称：&amp;ldquo;这次公约的首批签署单位主要是博客工作组的成员，因为他们对于公约的情况很了解也很认可，所以首先签署。随后会逐步扩大签署范围，有更多的单位加入。&amp;rdquo; (文/咚咏)&lt;/p&gt;&lt;!-- Content End --&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/c893d42d1cddf563c3d692f3061c92e5&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/c893d42d1cddf563c3d692f3061c92e5/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>网络+++望闻问切</category><pubDate>Wed, 22 Aug 2007 10:41:10 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/72.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/72.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/72.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253623/1219954</fs:itemid></item><item><title>从中文网址到中文电话</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253624/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=71</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=71&amp;key=5da3e7ba</trackback:ping><description>&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/img/68/review.gif&quot; /&gt;中文在中国就是这么又市场,3721的中文上网,IE7的中文网址都可以说是抢中文这口饭吃的主儿,如今,从网络上下来,又来了一个&lt;a target=&quot;_blank&quot; href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/68/r.html &quot;&gt;中国总机&lt;/a&gt;中文电话实名.&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#808000&quot;&gt;&amp;ldquo;&lt;a target=&quot;_blank&quot; href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/68/r.html &quot;&gt;中国总机&lt;/a&gt;电话实名&amp;rdquo;符合中国人的记忆、联想、思考习惯，考虑到人对文字的记忆远大于对数字的记忆。这样，人们再也不用记忆各种冗长的固定电话、手机或小灵通号码，而只要直接使用一个简单易记的中文名称，就能直接联系到目标企业。&amp;ldquo;&lt;a target=&quot;_blank&quot; href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/68/r.html &quot;&gt;中国总机&lt;/a&gt;电话实名&amp;rdquo;以其方便快速、简单易记的特点被广泛应用于企业营销、产品促销、品牌推广等方面，使企业商机无时不有、无处不在。同时，企业注册&amp;ldquo;电话实名&amp;rdquo;，也是企业知识产权保护的必要手段。&lt;/font&gt;&lt;/p&gt;&lt;p&gt;当然在我试用&lt;a target=&quot;_blank&quot; href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/68/r.html &quot;&gt;中国总机&lt;/a&gt;之前我也不知道是什么东东.唯一的感觉是,难道技术又退步了,又需要人来做接线员了?想到无数反映革命前辈战斗的影片中,大无畏的连长、营长们在被炸弹炸的&amp;ldquo;噗噗&amp;rdquo;落土的小茅棚里，把伟大的手摇电话机狂转N圈之后说&amp;ldquo;给我接XXX司令员&amp;rdquo;。估计这个就是电话实名最早的原型了。&lt;/p&gt;&lt;p&gt;不过有点值得提到的就是，机器永远也无法取代人，除非让它学会了中国无数中的方言并知道每个人的发音的特点（不可能，最起码现在不行）。&lt;/p&gt;&lt;p&gt;我用一口标准流利的中文向&lt;a target=&quot;_blank&quot; href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/68/r.html &quot;&gt;中国总机&lt;/a&gt;4008100100发出了深情的信号，然后在很快的瞬间，一个不太甜蜜的声音传到我的耳中，报号的。&lt;/p&gt;&lt;p&gt;之后，我让他给我接一个订票的电话，我也不知道接哪里去了，反正是接通了，对方马上问我订票的事情，我就挂电话了，看来速度挺快的。但400毕竟是免费电话，理应由参与电话实名的企业或者个人来付费，虽然是市话收费，但怎么能让我们这些打电话的人付费呢？&lt;/p&gt;&lt;p&gt;我的一点想法是可以加入实名搜索功能。企业交纳很少量的money，然后可以加入索引中供人查找。&lt;/p&gt;&lt;p&gt;体验到此，OK。&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/4c4a5c449e7134e183e7d3bbedb8c5e8&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/4c4a5c449e7134e183e7d3bbedb8c5e8/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>广告+++公益推广</category><pubDate>Fri, 17 Aug 2007 09:52:02 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/71.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/71.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/71.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253624/1219954</fs:itemid></item><item><title>什么是md5</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253625/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=70</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=70&amp;key=5acc5a27</trackback:ping><description>md5的全称是message-digest algorithm 5（信息-摘要算法），在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来，经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被&amp;quot;压缩&amp;quot;成一种保密的格式（就是把一个任意长度的字节串变换成一定长的大整数）。不管是md2、md4还是md5，它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似，但md2的设计与md4和md5完全不同，那是因为md2是为8位机器做过设计优化的，而md4和md5却是面向32位的电脑。这三个算法的描述和c语言源代码在internet rfcs 1321中有详细的描述（&lt;a target=&quot;_blank&quot; href=&quot;http://www.ietf.org/rfc/rfc1321.txt&quot;&gt;http://www.ietf.org/rfc/rfc1321.txt&lt;/a&gt;），这是一份最权威的文档，由ronald l. rivest在1992年8月向ieft提交。 &lt;br /&gt;&lt;br /&gt;rivest在1989年开发出md2算法。在这个算法中，首先对信息进行数据补位，使信息的字节长度是16的倍数。然后，以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来，rogier和chauvaud发现如果忽略了检验和将产生md2冲突。md2算法的加密后结果是唯一的--既没有重复。 &lt;br /&gt;&lt;br /&gt;为了加强算法的安全性，rivest在1990年又开发出md4算法。md4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除（信息字节长度mod 512 = 448）。然后，一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/merkle迭代结构的区块，而且每个区块要通过三个不同步骤的处理。den boer和bosselaers以及其他人很快的发现了攻击md4版本中第一步和第三步的漏洞。dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到md4完整版本中的冲突（这个冲突实际上是一种漏洞，它将导致对不同的内容进行加密却可能得到相同的加密后结果）。毫无疑问，md4就此被淘汰掉了。 &lt;br /&gt;&lt;br /&gt;尽管md4算法在安全上有个这么大的漏洞，但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了md5以外，其中比较有名的还有sha-1、ripe-md以及haval等。 &lt;br /&gt;&lt;br /&gt;一年以后，即1991年，rivest开发出技术上更为趋近成熟的md5算法。它在md4的基础上增加了&amp;quot;安全-带子&amp;quot;（safety-belts）的概念。虽然md5比md4稍微慢一些，但却更为安全。这个算法很明显的由四个和md4设计有少许不同的步骤组成。在md5算法中，信息-摘要的大小和填充的必要条件与md4完全相同。den boer和bosselaers曾发现md5算法中的假冲突（pseudo-collisions），但除此之外就没有其他被发现的加密后结果了。 &lt;br /&gt;&lt;br /&gt;van oorschot和wiener曾经考虑过一个在散列中暴力搜寻冲突的函数（brute-force hash function），而且他们猜测一个被设计专门用来搜索md5冲突的机器（这台机器在1994年的制造成本大约是一百万美元）可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间，竟没有出现替代md5算法的md6或被叫做其他什么名字的新算法这一点，我们就可以看出这个瑕疵并没有太多的影响md5的安全性。上面所有这些都不足以成为md5的在实际应用中的问题。并且，由于md5算法的使用不需要支付任何版权费用的，所以在一般的情况下（非绝密应用领域。但即便是应用在绝密领域内，md5也不失为一种非常优秀的中间技术），md5怎么都应该算得上是非常安全的了。&lt;br /&gt;&lt;br /&gt;2004年8月17日的美国加州圣巴巴拉的国际密码学会议（Crypto&amp;rsquo;2004）上，来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告，公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD５的堡垒轰然倒塌，引发了密码学界的轩然大波。&lt;br /&gt;&lt;br /&gt;MD5破解工程权威网站&lt;a target=&quot;_blank&quot; href=&quot;http://www.md5crk.com/&quot;&gt;http://www.md5crk.com/&lt;/a&gt; 是为了公开征集专门针对MD5的攻击而设立的，网站于2004年8月17日宣布：&amp;ldquo;中国研究人员发现了完整MD5算法的碰撞；Wang, Feng, Lai与Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术，在数个小时内就可以找到MD5碰撞。&amp;hellip;&amp;hellip;由于这个里程碑式的发现，MD5CRK项目将在随后48小时内结束&amp;rdquo;。&lt;br /&gt;&lt;br /&gt;用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA.&lt;br /&gt;算法的应用 &lt;br /&gt;&lt;br /&gt;　　MD5的典型应用是对一段信息（Message）产生信息摘要（Message-Digest），以防止被篡改。比如，在UNIX下有很多软件在下载的时候都有一个文件名相同，文件扩展名为.md5的文件，在这个文件中通常只有一行文本，大致结构如： &lt;br /&gt;&lt;br /&gt;　　　MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 &lt;br /&gt;&lt;br /&gt;　　这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息，通过其不可逆的字符串变换算法，产生了这个唯一的MD5信息摘要。如果在以后传播这个文件的过程中，无论文件的内容发生了任何形式的改变（包括人为修改或者下载过程中线路不稳定引起的传输错误等），只要你对这个文件重新计算MD5时就会发现信息摘要不相同，由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证机构，用MD5还可以防止文件作者的&amp;quot;抵赖&amp;quot;，这就是所谓的数字签名应用。 &lt;br /&gt;&lt;br /&gt;　　MD5还广泛用于加密和解密技术上。比如在UNIX系统中用户的密码就是以MD5（或其它类似的算法）经加密后存储在文件系统中。当用户登录的时候，系统把用户输入的密码计算成MD5值，然后再去和保存在文件系统中的MD5值进行比较，进而确定输入的密码是否正确。通过这样的步骤，系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道，而且还在一定程度上增加了密码被破解的难度。 &lt;br /&gt;&lt;br /&gt;　　正是因为这个原因，现在被黑客使用最多的一种破译密码的方法就是一种被称为&amp;quot;跑字典&amp;quot;的方法。有两种方法得到字典，一种是日常搜集的用做密码的字符串表，另一种是用排列组合方法生成的，先用MD5程序计算出这些字典项的MD5值，然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节（8 Bytes），同时密码只能是字母和数字，共26+26+10=62个字符，排列组合出的字典的项数则是P(62,1)+P(62,2)&amp;hellip;.+P(62,8)，那也已经是一个很天文的数字了，存储这个字典就需要TB级的磁盘阵列，而且这种方法还有一个前提，就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中，这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。 &lt;br /&gt;&lt;br /&gt;　　算法描述 &lt;br /&gt;&lt;br /&gt;　　对MD5算法简要的叙述可以为：MD5以512位分组来处理输入的信息，且每一分组又被划分为16个32位子分组，经过了一系列的处理后，算法的输出由四个32位分组组成，将这四个32位分组级联后将生成一个128位散列值。 &lt;br /&gt;&lt;br /&gt;　　在MD5算法中，首先需要对信息进行填充，使其字节长度对512求余的结果等于448。因此，信息的字节长度（Bits Length）将被扩展至N*512+448，即N*64+56个字节（Bytes），N为一个正整数。填充的方法如下，在信息的后面填充一个1和无数个0，直到满足上面的条件时才停止用0对信息的填充。然后，在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理，现在的信息字节长度=N*512+448+64=(N+1)*512，即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。 &lt;br /&gt;&lt;br /&gt;　　MD5中有四个32位被称作链接变量（Chaining Variable）的整数参数，他们分别为：A=0x01234567，B=0x89abcdef，C=0xfedcba98，D=0x76543210。 &lt;br /&gt;&lt;br /&gt;　　当设置好这四个链接变量后，就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。 &lt;br /&gt;&lt;br /&gt;　　将上面四个链接变量复制到另外四个变量中：A到a，B到b，C到c，D到d。 &lt;br /&gt;&lt;br /&gt;　　主循环有四轮（MD4只有三轮），每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算，然后将所得结果加上第四个变量，文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数，并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。 &lt;br /&gt;以一下是每次操作中用到的四个非线性函数（每轮一个）。 &lt;br /&gt;&lt;br /&gt;　　　F(X,Y,Z) =(X&amp;amp;Y)|((~X)&amp;amp;Z) &lt;br /&gt;　　　G(X,Y,Z) =(X&amp;amp;Z)|(Y&amp;amp;(~Z)) &lt;br /&gt;　　　H(X,Y,Z) =X^Y^Z &lt;br /&gt;　　　I(X,Y,Z)=Y^(X|(~Z)) &lt;br /&gt;　　　（&amp;amp;是与，|是或，~是非，^是异或） &lt;br /&gt;&lt;br /&gt;　　这四个函数的说明：如果X、Y和Z的对应位是独立和均匀的，那么结果的每一位也应是独立和均匀的。 &lt;br /&gt;F是一个逐位运算的函数。即，如果X，那么Y，否则Z。函数H是逐位奇偶操作符。 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;具体的一个MD5实现：&lt;br /&gt;=============================头文件Security.h===============================================&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;使用方法：&lt;br /&gt;&lt;br /&gt;char Md5Buffer[33];&lt;br /&gt;CSecurity Security;&lt;br /&gt;Security.MD5(&amp;quot;a string&amp;quot;,Md5Buffer);&lt;br /&gt;&lt;br /&gt;执行完成之后Md5Buffer中即存储了由&amp;quot;a string&amp;quot;计算得到的MD5值&lt;br /&gt;&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;// 下列 ifdef 块是创建使从 DLL 导出更简单的&lt;br /&gt;// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 SECURITY_EXPORTS&lt;br /&gt;// 符号编译的。在使用此 DLL 的&lt;br /&gt;// 任何其他项目上不应定义此符号。这样，源文件中包含此文件的任何其他项目都会将 &lt;br /&gt;// SECURITY_API 函数视为是从此 DLL 导入的，而此 DLL 则将用此宏定义的&lt;br /&gt;// 符号视为是被导出的。&lt;br /&gt;&lt;br /&gt;//在使用该类的地方包含本文件即可&lt;br /&gt;#ifdef SECURITY_EXPORTS&lt;br /&gt;#define SECURITY_API __declspec(dllexport)&lt;br /&gt;#else&lt;br /&gt;#define SECURITY_API __declspec(dllimport)&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;/* POINTER defines a generic pointer type */ &lt;br /&gt;typedef unsigned char *POINTER; &lt;br /&gt;&lt;br /&gt;/* UINT2 defines a two byte word */ &lt;br /&gt;typedef unsigned short int UINT2; &lt;br /&gt;&lt;br /&gt;/* UINT4 defines a four byte word */ &lt;br /&gt;typedef unsigned long int UINT4; &lt;br /&gt;&lt;br /&gt;#define PROTO_LIST(list) list &lt;br /&gt;&lt;br /&gt;/* MD5 context. */ &lt;br /&gt;typedef struct _MD5_CTX &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UINT4 state[4]; /* state (ABCD) */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char buffer[64]; /* input buffer */ &lt;br /&gt;} MD5_CTX; &lt;br /&gt;&lt;br /&gt;static unsigned char PADDING[64]= { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 &lt;br /&gt;};&lt;br /&gt;/* Constants for MD5Transform routine. &lt;br /&gt;*/ &lt;br /&gt;#define S11 7 &lt;br /&gt;#define S12 12 &lt;br /&gt;#define S13 17 &lt;br /&gt;#define S14 22 &lt;br /&gt;#define S21 5 &lt;br /&gt;#define S22 9 &lt;br /&gt;#define S23 14 &lt;br /&gt;#define S24 20 &lt;br /&gt;#define S31 4 &lt;br /&gt;#define S32 11 &lt;br /&gt;#define S33 16 &lt;br /&gt;#define S34 23 &lt;br /&gt;#define S41 6 &lt;br /&gt;#define S42 10 &lt;br /&gt;#define S43 15 &lt;br /&gt;#define S44 21 &lt;br /&gt;&lt;br /&gt;/* F, G, H and I are basic MD5 functions. &lt;br /&gt;*/ &lt;br /&gt;#define F(x, y, z) (((x) &amp;amp; (y)) | ((~x) &amp;amp; (z))) &lt;br /&gt;#define G(x, y, z) (((x) &amp;amp; (z)) | ((y) &amp;amp; (~z))) &lt;br /&gt;#define H(x, y, z) ((x) ^ (y) ^ (z)) &lt;br /&gt;#define I(x, y, z) ((y) ^ ((x) | (~z))) &lt;br /&gt;&lt;br /&gt;/* ROTATE_LEFT rotates x left n bits. &lt;br /&gt;*/ &lt;br /&gt;#define ROTATE_LEFT(x, n) (((x) &amp;lt;&amp;lt; (n)) | ((x) &amp;gt;&amp;gt; (32-(n)))) &lt;br /&gt;&lt;br /&gt;/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. &lt;br /&gt;Rotation is separate from addition to prevent recomputation. &lt;br /&gt;*/ &lt;br /&gt;#define FF(a, b, c, d, x, s, ac) { (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac);(a) = ROTATE_LEFT ((a), (s)); (a) += (b); } &lt;br /&gt;#define GG(a, b, c, d, x, s, ac) { (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); } &lt;br /&gt;#define HH(a, b, c, d, x, s, ac) {&amp;nbsp;&amp;nbsp;(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); } &lt;br /&gt;#define II(a, b, c, d, x, s, ac) { (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); } &lt;br /&gt;&lt;br /&gt;#define TEST_BLOCK_LEN 1000 &lt;br /&gt;#define TEST_BLOCK_COUNT 1000 &lt;br /&gt;&lt;br /&gt;// 此类是从 Security.dll 导出的&lt;br /&gt;class SECURITY_API CSecurity &lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CSecurity(void);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void CSecurity::MD5( const char *string ,char *lpMD5StringBuffer ) ; &lt;br /&gt;private:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64])); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MD5_memcpy PROTO_LIST ((POINTER, POINTER, size_t)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MD5_memset PROTO_LIST ((POINTER, int, size_t)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MD5Init PROTO_LIST ((MD5_CTX *)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MD5Update PROTO_LIST ((MD5_CTX *, unsigned char *, size_t)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void MDTimeTrial PROTO_LIST ((void)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void StringAddOne PROTO_LIST ((char *)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void Encode PROTO_LIST ((unsigned char *, UINT4 *, size_t)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;void Decode PROTO_LIST ((UINT4 *, unsigned char *, size_t)); &lt;br /&gt;};&lt;br /&gt;===============================Security.cpp====================================================&lt;br /&gt;&lt;br /&gt;// Security.cpp : 定义 DLL 应用程序的入口点。&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;&lt;br /&gt;#include&amp;lt;stdio.h&amp;gt; &lt;br /&gt;#include&amp;lt;stdlib.h&amp;gt; &lt;br /&gt;#include&amp;lt;string.h&amp;gt; &lt;br /&gt;#include&amp;lt;math.h&amp;gt; &lt;br /&gt;#include&amp;lt;ctype.h&amp;gt; &lt;br /&gt;&lt;br /&gt;#include &amp;quot;Security.h&amp;quot;&lt;br /&gt;&lt;br /&gt;BOOL APIENTRY DllMain( HANDLE hModule, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DWORD&amp;nbsp;&amp;nbsp;ul_reason_for_call, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;LPVOID lpReserved&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (ul_reason_for_call)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DLL_PROCESS_ATTACH:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DLL_THREAD_ATTACH:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DLL_THREAD_DETACH:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DLL_PROCESS_DETACH:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; return TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// 这是已导出类的构造函数。&lt;br /&gt;// 有关类定义的信息，请参阅 Security.h&lt;br /&gt;CSecurity::CSecurity()&lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;MD5 initialization. Begins an MD5 operation, writing a new context. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5Init( MD5_CTX *context ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;count[0] = context-&amp;gt;count[1] = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Load magic initialization constants. &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;state[0] = 0x67452301; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;state[1] = 0xefcdab89; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;state[2] = 0x98badcfe; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;state[3] = 0x10325476; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;MD5 block update operation. Continues an MD5 message-digest &lt;br /&gt;operation, processing another message block, and updating the &lt;br /&gt;context. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5Update( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;MD5_CTX *context, /* context */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;unsigned char *input, /* input block */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;size_t inputLen /* length of input block */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t i, index, partLen; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Compute number of bytes mod 64 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index = (size_t)((context-&amp;gt;count[0] &amp;gt;&amp;gt; 3) &amp;amp; 0x3F); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Update number of bits */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((context-&amp;gt;count[0] += ((UINT4)inputLen &amp;lt;&amp;lt; 3)) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt; ((UINT4)inputLen &amp;lt;&amp;lt; 3)) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;count[1]++; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context-&amp;gt;count[1] += ((UINT4)inputLen &amp;gt;&amp;gt; 29); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; partLen = 64 - index; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Transform as many times as possible. */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (inputLen &amp;gt;= partLen) { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5_memcpy &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((POINTER)&amp;amp;context-&amp;gt;buffer[index], (POINTER)input, partLen); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Transform (context-&amp;gt;state, context-&amp;gt;buffer); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = partLen; i + 63 &amp;lt; inputLen; i += 64) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Transform (context-&amp;gt;state, &amp;amp;input&lt;em&gt;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Buffer remaining input */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5_memcpy &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((POINTER)&amp;amp;context-&amp;gt;buffer[index], (POINTER)&amp;amp;input&lt;em&gt;, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inputLen-i); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;MD5 finalization. Ends an MD5 message-digest operation, writing the &lt;br /&gt;the message digest and zeroizing the context. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5Final( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned char digest[16], /* message digest */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;MD5_CTX *context /* context */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char bits[8]; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t index, padLen; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Save number of bits */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Encode (bits, context-&amp;gt;count, 8); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Pad out to 56 mod 64. */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index = (size_t)((context-&amp;gt;count[0] &amp;gt;&amp;gt; 3) &amp;amp; 0x3f); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; padLen = (index &amp;lt; 56) ? (56 - index) : (120 - index); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Update (context, PADDING, padLen); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Append length (before padding) */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Update (context, bits, 8); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Store state in digest */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Encode (digest, context-&amp;gt;state, 16); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Zeroize sensitive information. */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5_memset ((POINTER)context, 0, sizeof (*context)); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;MD5 basic transformation. Transforms state based on block. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5Transform( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;UINT4 state[4], &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned char block[64] &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Decode (x, block, 64); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Round 1 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Round 2 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Round 3 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Round 4 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; state[0] += a; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; state[1] += b; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; state[2] += c; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; state[3] += d; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Zeroize sensitive information. */ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5_memset ((POINTER)x, 0, sizeof (x)); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Encodes input (UINT4) into output (unsigned char). &lt;br /&gt;Assumes len is a multiple of 4. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::Encode( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; unsigned char *output, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; UINT4 *input, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; size_t len &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t i, j; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = 0, j = 0; j &amp;lt; len; i++, j += 4) { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[j] = (unsigned char)(input&lt;em&gt; &amp;amp; 0xff); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[j+1] = (unsigned char)((input&lt;em&gt; &amp;gt;&amp;gt; 8) &amp;amp; 0xff); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[j+2] = (unsigned char)((input&lt;em&gt; &amp;gt;&amp;gt; 16) &amp;amp; 0xff); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[j+3] = (unsigned char)((input&lt;em&gt; &amp;gt;&amp;gt; 24) &amp;amp; 0xff); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Decodes input (unsigned char) into output (UINT4). &lt;br /&gt;Assumes len is a multiple of 4. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::Decode( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; UINT4 *output, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; unsigned char *input, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; size_t len &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t i, j; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = 0, j = 0; j &amp;lt; len; i++, j += 4) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output&lt;em&gt; = ((UINT4)input[j]) | (((UINT4)input[j+1]) &amp;lt;&amp;lt; 8) | &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (((UINT4)input[j+2]) &amp;lt;&amp;lt; 16) | (((UINT4)input[j+3]) &amp;lt;&amp;lt; 24); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Note: Replace &amp;quot;for loop&amp;quot; with standard memcpy if possible. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5_memcpy( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; POINTER output, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; POINTER input, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; size_t len &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t i; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = 0; i &amp;lt; len; i++) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output&lt;em&gt; = input&lt;em&gt;; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Note: Replace &amp;quot;for loop&amp;quot; with standard memset if possible. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5_memset( &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; POINTER output, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; int value, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; size_t len &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t i; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = 0; i &amp;lt; len; i++) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((char *)output)&lt;em&gt; = (char)value; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Digests a string and prints the result. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::MD5( const char *string ,char *lpMD5StringBuffer ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5_CTX context; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char digest[16]; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*char output1[33]; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static char output[33]={&amp;quot;&amp;quot;}; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*size_t*/size_t len = strlen (string); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Init( &amp;amp;context); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Update( &amp;amp;context, (unsigned char*)string, len ); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MD5Final( digest, &amp;amp;context ); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = 0; i &amp;lt; 16; i++) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sprintf(&amp;amp;(lpMD5StringBuffer[2*i]),&amp;quot;%02x&amp;quot;,(unsigned char)digest&lt;em&gt;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sprintf(&amp;amp;(lpMD5StringBuffer[2*i+1]),&amp;quot;%02x&amp;quot;,(unsigned char)(digest&lt;em&gt;&amp;lt;&amp;lt;4)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(i=0;i&amp;lt;32;i++) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output&lt;em&gt;=lpMD5StringBuffer&lt;em&gt;; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;get the string add one. &lt;br /&gt;*/ &lt;br /&gt;void CSecurity::StringAddOne( char * orstring ) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t len; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t i,n; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; len = strlen(orstring); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; n = len - 1; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(i = n; i &amp;gt;= 0; i--) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(orstring&lt;em&gt;=='9') &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; orstring&lt;em&gt; = 'A'; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if(orstring&lt;em&gt;=='Z') &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; orstring&lt;em&gt;='a'; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if(orstring&lt;em&gt;=='z') &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; orstring&lt;em&gt;='0'; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; continue; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; orstring&lt;em&gt; += 1; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;} &lt;br /&gt;=============================stdafx.h=====================================&lt;br /&gt;// stdafx.h : 标准系统包含文件的包含文件，&lt;br /&gt;// 或是常用但不常更改的项目特定的包含文件&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;#pragma once&lt;br /&gt;&lt;br /&gt;//导出&lt;br /&gt;#define SECURITY_EXPORTS&lt;br /&gt;&lt;br /&gt;#define WIN32_LEAN_AND_MEAN&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 从 Windows 头中排除极少使用的资料&lt;br /&gt;// Windows 头文件:&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;&lt;br /&gt;// TODO: 在此处引用程序要求的附加头文件&lt;br /&gt;============================stdafx.cpp========================================&lt;br /&gt;&lt;br /&gt;// stdafx.cpp : 只包括标准包含文件的源文件&lt;br /&gt;// Security.pch 将成为预编译头&lt;br /&gt;// stdafx.obj 将包含预编译类型信息&lt;br /&gt;&lt;br /&gt;#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;&lt;br /&gt;// TODO: 在 STDAFX.H 中&lt;br /&gt;//引用任何所需的附加头文件，而不是在此文件中引用&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;br /&gt;以上程序使用命令：@cl /GD /LD Security.cpp stdafx.cpp 编译即可&lt;br /&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/53828333af66dff17caa65cf1d8c6094&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/53828333af66dff17caa65cf1d8c6094/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>知识+++海纳百川</category><pubDate>Sun, 05 Aug 2007 09:51:22 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/70.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/70.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/70.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253625/1219954</fs:itemid></item><item><title>银行所谓笑话</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253626/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=69</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=69&amp;key=1e77ddd9</trackback:ping><description>1.一天，在给一男客户办理完取款业务后，我交待说：请您把卡收好。再看，发现客户手包拉链没拉好，又交待说：请您把拉链拉好。客户立即低头查看，周围同事笑成一片。&lt;br /&gt;　　&lt;br /&gt;　　　　2.一次一个客户不会用取款机，咨询员教他使用，咨询员把卡放到取款机里后，对客户说，您在这儿输密码&amp;hellip;&amp;hellip;哪知客户低下头，对着电脑屏幕轻声说了他的6位取款密码。客户把&amp;ldquo;输密码&amp;rdquo;听成了&amp;ldquo;说密码&amp;rdquo;&amp;hellip;&amp;hellip;&lt;br /&gt;　　&lt;br /&gt;　　　　3.一哥们儿，做会计业务总是不平账，耽误同事下班时间。一日同事基本搞定，但其美元还未平，这哥们儿不慌不忙大唱：&amp;ldquo;哪里有不平哪有我，哪里有不平哪有我&amp;hellip;&amp;hellip;&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　4.有一次，刚刚接完小女儿的电话，电话又响。前面都正常，不知怎么我突然说：&amp;ldquo;你要乖一点哦！&amp;rdquo;电话那边沉默&amp;hellip;&amp;hellip;&lt;br /&gt;　　&lt;br /&gt;　　　　5.刚开始免填凭条时，一客户来办理存款业务，当业务办完后，我用双手把凭条递出，恭恭敬敬地说：&amp;ldquo;请在下面的横杠上写下您的取款密码(应该是名字)。&amp;rdquo;客户马上一脸警惕。&lt;br /&gt;　　&lt;br /&gt;　　　　6.一日时逢中午饭点，一同事惦记着中午只有米饭，但想吃面条。客户来办理取款业务，临走时，该同事十分体贴地说：&amp;ldquo;请拿好您的面条，欢迎下次再来(应该是请拿好您的现金)。&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　7.&amp;ldquo;请您到填单台填写一下&amp;times;&amp;times;单&amp;rdquo;被讲成：&amp;ldquo;请您到天文台填写一下&amp;rdquo;、&amp;ldquo;请您到吧台填写一下&amp;rdquo;。&lt;br /&gt;　　&lt;br /&gt;　　　　8.做久了储蓄，突然出来做大堂经理，在网上银行替客户购买基金时，指着小键盘，想让客户输入密码，却冒出一句：&amp;ldquo;请在这里签名。&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　9.一客户在取款机取款，操作不当被吞卡了。客户异常着急，立即到窗口满脸通红地问：&amp;ldquo;同志，我的卡把机器吞了！怎么办？&amp;rdquo;窗口的哥们儿听后不仅没笑，反而异常镇静地对客户说：&amp;ldquo;我说怎么今天早上清机的时候发现少了一台机器呢，原来是被你的卡吞了！&amp;rdquo;全体同事暴笑，客户也笑得前仰后合。&lt;br /&gt;　　&lt;br /&gt;　　　　10.有一次，一个客户输密码输了N遍，最后终于对了，我同事是位大姐，就对客户说：&amp;ldquo;密码可不能忘，忘了就麻烦了，今天晚上回家别看电视，把它背熟了。&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　11.有一次接手机，是我哥打来的，习惯性地说了句：&amp;ldquo;您好，&amp;times;行。&amp;rdquo;哥先是一愣，然后回答道：&amp;ldquo;你好，我是&amp;times;行他哥。&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　12.原来在前台办业务时，请客户在金额边上补上&amp;ldquo;小写&amp;rdquo;；将单子收回时，发现客户并没有写上小写金额，刚想追问，发现她在签名处补加上了&amp;ldquo;小姐&amp;rdquo;两字，变成&amp;ldquo;苏&amp;times;&amp;times;小姐&amp;rdquo;&amp;hellip;&amp;hellip;&lt;br /&gt;　　&lt;br /&gt;　　　　13.我行传播很广的一个笑话。经办员：&amp;ldquo;您好，请问您办什么业务？&amp;rdquo;客户：&amp;ldquo;哦，我存一个死期(整存整取)！&amp;rdquo;经办员：&amp;ldquo;那请问您死多久？&amp;rdquo;客户：&amp;ldquo;嗯，死一年！&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　14.我行ATM机在客户输入支取金额前屏幕会有一段提示，大意是：本机可为您提供100元和50元票面人民币现钞，请您输入金额后按确认即可。有天来一客户，在柜台要求用卡取现2000元，柜员提示说也可到门外窗口的ATM机取，客户坚决摇头：&amp;ldquo;不行！你们的机子太落后，每次只能取100元，我上次取1500元，取了15次&amp;hellip;&amp;hellip;&amp;rdquo;&lt;br /&gt;　　&lt;br /&gt;　　　　15.有一次俺坐柜，免填单，一位MM取现金100元，凭条打好后我让她签名，拿进后一看，签名居然是&amp;ldquo;一佰元&amp;rdquo;！&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/6c33fdfb38550e8388005ce57ea86f5d&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/6c33fdfb38550e8388005ce57ea86f5d/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>知识+++海纳百川</category><pubDate>Sun, 22 Jul 2007 09:46:00 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/69.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/69.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/69.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253626/1219954</fs:itemid></item><item><title>名人名言</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253627/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=68</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=68&amp;key=063dcf23</trackback:ping><description>董永篇 &lt;br /&gt;&lt;br /&gt;1.哪怕是没有出路，哪怕是要付出极大的代价，无论跌倒多少次，即使是粉身碎骨，我也要把她带回来 &lt;br /&gt;&lt;br /&gt;2.爱与不爱本身没有错，可是错在欺骗 &lt;br /&gt;&lt;br /&gt;3.真心爱一个人，这也叫做非分之想吗 &lt;br /&gt;&lt;br /&gt;4.我告诉你啊，不管你是变成了蟑螂，老鼠，还是大蟒蛇，我都一样喜欢你！！ &lt;br /&gt;&lt;br /&gt;5.小七，认识你之后，我才懂得什么叫爱，每次跟你在一起，我都觉得时间不够用，所以如果有来世的话，我还会和你在一起，哪怕是十世，百世，千世，我们永远都要在一起。如果连自己最爱的人都失去了，那活着还有什么意思呢？为了小七，我什么都不怕。你打啊，只要我不倒下，小七就不能走 。小七，我答应你的事，一定会做到的。我跟小七，永不分开。我爱小七，只要我有一口气在，我就会爱她。 &lt;br /&gt;&lt;br /&gt;6.人一定不能为恶,所谓天网恢恢,法网难逃,冥冥之中总有主宰 &lt;br /&gt;&lt;br /&gt;7.在我的爱里面,只有包容,只有承诺,不管怎么样我都一样爱你。 &lt;br /&gt;&lt;br /&gt;8.对不起,我没能把你带走,你要好好的活下去,活着就有希望,但愿我能有来生 &lt;br /&gt;&lt;br /&gt;9.吃饱了早饭吃中饭 &lt;br /&gt;吃饱了中饭吃晚饭 &lt;br /&gt;吃饱了晚饭睡觉去 &lt;br /&gt;一觉醒来吃早饭 &lt;br /&gt;&lt;br /&gt;10.（招架不住小七）好啦～～～～～ &lt;br /&gt;&lt;br /&gt;11.两次了，两次我都眼睁睁看你离开，我不想你再离开我了。 &lt;br /&gt;&lt;br /&gt;12.嗯&amp;hellip;&amp;hellip;啊&amp;hellip;&amp;hellip;那&amp;hellip;那就不要想&amp;hellip;想了嘛&amp;hellip;&amp;hellip; &lt;br /&gt;&lt;br /&gt;13.自从小七来了以后，我每天&amp;hellip;&amp;hellip;都回去回忆他对我说的每一句话，所作的每一个动作，还有每一个微笑。我拿她&amp;hellip;&amp;hellip;完全就没有办法&amp;hellip;&amp;hellip; &lt;br /&gt;&lt;br /&gt;14.小七，地瓜终于明白了，一切都明白了。你这个傻瓜，你该早告诉我的。无论你是人也好，是仙也好，地瓜都会永远爱你，都会永远永远跟你在一起。我在就跟你说过，地瓜为了小七，什么都可以不在乎的。 &lt;br /&gt;小七，无论发生了什么事情，都不会影响我对你的爱。我答应你，我会让你一辈子幸福的。 &lt;br /&gt;&lt;br /&gt;15.我娘說過...小七它不是一條狗麼? &lt;br /&gt;&lt;br /&gt;16.我对小七是执迷的。 &lt;br /&gt;除了她，我不会再爱上任何人。 &lt;br /&gt;可是我绝对不是自私的。 &lt;br /&gt;为了小七，我可以牺牲一切。 &lt;br /&gt;并且，我已经这么做了。 &lt;br /&gt;我知道，小七也是一样的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;小七篇&lt;br /&gt;&lt;br /&gt;1.地瓜傻子说，如果你是真心喜欢一个人的话，就算不说，他也会知道的，如果你是真心的，他应该感受的到的， &lt;br /&gt;就我小7来说，如果有人喜欢我的话，我是会很开心的，如果他嫌弃你的话，那他就不值得你喜欢了 &lt;br /&gt;&lt;br /&gt;2.冰糖葫芦五加皮 &lt;br /&gt;&lt;br /&gt;3.此刻我才发现 &lt;br /&gt;原来一个人没心没肺是会伤害身边的人的 &lt;br /&gt;所以啊 &lt;br /&gt;以后我要好好珍惜身边的每一个人 &lt;br /&gt;我要爱惜他们的感受 &lt;br /&gt;我要记着他们每一个人对我的好 &lt;br /&gt;&lt;br /&gt;4.妈妈是世界上最伟大的人了，爱情会变，友谊会变，世界也会变，惟独母爱是绝对不会变的。 &lt;br /&gt;&lt;br /&gt;5.因为我爱你，所以一切奇迹，都有可能发生！ &lt;br /&gt;&lt;br /&gt;6.匆匆，实在太匆匆了，到了要走的时候，才发现自己从来没有珍惜在一起度过的每一天，以为今天的快乐都会延续的明天，明天之后还有明天。地瓜，我只想做一个平凡人，如果，如果我可以选择的话，我只想和地瓜永远在一起。 &lt;br /&gt;&lt;br /&gt;7.除非你把我杀死吧，否则情根只会越长越多，越长越茁壮，拔情根不过是玉帝爹爹的笨想法，只有不懂得爱的人才会这么做的，心才是一切的根本，只要有了心，情根就会不断的茁壮，不断生长 &lt;br /&gt;&lt;br /&gt;8.他的孃親,很可愛很可愛..她很愛很愛地瓜... &lt;br /&gt;&lt;br /&gt;9.孩子說他不喜歡這個邉? &lt;br /&gt;&lt;br /&gt;10.讓我看一眼孩子,一眼就好,隻要一眼... &lt;br /&gt;&lt;br /&gt;11.我不會讓你變成烤地瓜的，因為你答應過我，要請我吃真正的烤地瓜。 &lt;br /&gt;&lt;br /&gt;12.让我们一起受灌溉 &lt;br /&gt;让我们一起成长 &lt;br /&gt;让我们两个一起承受恶劣的天气 &lt;br /&gt;任风吹雨打&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/c38ed56844152a6829e0c5621b6c9631&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/c38ed56844152a6829e0c5621b6c9631/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>笔记+++生活常识</category><pubDate>Thu, 12 Jul 2007 09:45:27 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/68.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/68.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/68.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253627/1219954</fs:itemid></item><item><title>不同年龄段的观众看黄金甲的反应</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253628/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=67</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=67&amp;key=d6471f72</trackback:ping><description>五岁的观众：很直接的扭头找到自己的老母，妈，我想吃咪咪。 &lt;br /&gt;&lt;br /&gt;十岁的观众：一脸憧憬道：长大了我要当周润发那样的人。 &lt;br /&gt;&lt;br /&gt;二十岁的观众：他很拘谨，甚至有点害羞，他的底裤湿了。 &lt;br /&gt;&lt;br /&gt;三十岁的观众：悄悄的跟夫人说，老婆，你也挤挤吧，巩利都能挤出来。 &lt;br /&gt;&lt;br /&gt;四十岁的观众：心里粹粹念着，伟哥，大力丸，印度神油，一个都不能少。 &lt;br /&gt;&lt;br /&gt;五十岁的观众：如果我成为一个强 J犯，谋子哥，请不要为我哭泣 &lt;br /&gt;&lt;br /&gt;六十岁的观众：面上一脸严肃状，心里默默的把曾经把过的马子一个个数个遍，结果没一个比那些宫女大的。 &lt;br /&gt;&lt;br /&gt;七十岁的观众：一脸自豪的神态，老子又可以挺了 &lt;br /&gt;&lt;br /&gt;八十岁的观众：看完后默默呆坐，怅然若失的飘出一句话，我这一辈子，算毁了 &lt;br /&gt;&lt;br /&gt;电影制作人：给我一个张艺谋，我就能挤出来一道鸿沟 &lt;br /&gt;&lt;br /&gt;影评人：这是一个创新，敢于赤裸裸的把三分之二的乳房暴露在大众之下，这代表着一个新的时代，被艺谋撕开了。他不在乎别人的口水甚至恶骂，他坚持着自己可能由于生活中的缺陷造成的对乳房偏爱的这种情结，举步维坚的走着。 &lt;br /&gt;&lt;br /&gt;画家：MD，就是让老子画，也画不出来这么大，这么圆，这么深，这么挺。 &lt;br /&gt;&lt;br /&gt;历史家：从谋子的影片中，我们再次可以得到这样一个结论，一个朝代的牛比是与妇女们的乳房暴露程度成正比的。 &lt;br /&gt;&lt;br /&gt;诗人：远远的，天上的街灯亮了。那是艺谋挑着两个乳房，在走路。 &lt;br /&gt;&lt;br /&gt;张钰：我的乳房和张艺谋有一腿，我有视频，有录音，你们要哪个？ &lt;br /&gt;&lt;br /&gt;精神病人：这部电影拍的很好，体现了一个朝代的各种矛盾，真是难得一见的把历史故事与现代技术结合的如此好的佳作啊，谋子大爷，我永远崇拜你。 &lt;br /&gt;&lt;br /&gt;外星人：我们要研究一下把张艺谋的乳沟挤出来的可能性.&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/5e3d85d3032bf34509af9f6e21c98d31&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/5e3d85d3032bf34509af9f6e21c98d31/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>笔记+++生活常识</category><pubDate>Thu, 05 Jul 2007 09:44:07 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/67.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/67.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/67.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253628/1219954</fs:itemid></item><item><title>搞笑网文</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253629/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=66</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=66&amp;key=f316a4cd</trackback:ping><description>在食堂排队，听见旁边一男生说：&amp;ldquo;师傅，来碗&amp;lsquo;子弹菜花汤&amp;rsquo;！&amp;rdquo;（紫菜蛋花汤）哈哈，笑得我喷汤了。&lt;br /&gt;&lt;br /&gt;　 我一很要好的男同学摔坐在地上，我为了表示关心想问一句&amp;ldquo;你屁股摔疼了吧？&amp;rdquo;结果不小心说成了&amp;ldquo;你的屁股摔死了吧？&amp;rdquo;汗！该兄站起来拍拍屁股，放了个屁，说：&amp;ldquo;没死，还喘气呢！&amp;rdquo;我直接晕了！&lt;br /&gt;&lt;br /&gt;　 我们有同事到外地出差，经销商请吃饭。席间欲小便，经销商说对面就有洗手间，你去的话就对看门的说是对面吃饭的，就可以免费。我们同事为了节约两毛钱，箭步直走，理直气壮地对管厕所的说：&amp;ldquo;我是来吃饭的！&amp;rdquo;&lt;br /&gt;&lt;br /&gt;　 为了准备聚餐去市场买菜，一个韩国朋友买了生菜，要２块４毛钱。他把身上所有的零钱都给了小贩，还缺一毛钱，所以他对小贩说：&amp;ldquo;我的毛都给你了，所以没有毛了。&amp;rdquo;小贩哑然，半天，回答：&amp;ldquo;你的毛我不要了&amp;rdquo;。&lt;br /&gt;&lt;br /&gt;　 去电影院看《加勒比海盗３》，电影开场前有《变形金刚》的预告片，看见正派首领时怎么也想不起来叫&amp;ldquo;威震天&amp;rdquo;，也想不起来反派叫&amp;ldquo;霸天虎&amp;rdquo;，因为太激动了，结果就惊呼了一下&amp;ldquo;真帅，是南霸天！&amp;rdquo;要命的是居然那时候突然特安静，Ｎ多人盯着我爆笑&amp;hellip;&amp;hellip;丢死人了！&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/b1d5b58c7f01e812e42b3423321aff59&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/b1d5b58c7f01e812e42b3423321aff59/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>笔记+++生活常识</category><pubDate>Fri, 29 Jun 2007 09:37:20 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/66.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/66.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/66.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253629/1219954</fs:itemid></item><item><title>博客历史整理笔记</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253630/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=48</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=48&amp;key=84c6262b</trackback:ping><description>&lt;p&gt;Blog历史 &lt;br /&gt;1993年6月：最古老的博客原型&amp;mdash;&amp;mdash;NCSA的&amp;ldquo;What&amp;rsquo;s New Page&amp;rdquo;网页，主要是罗列Web上新兴的网站索引，这个页面从93年6月开始，一直更新到1996年6月为止。&lt;br /&gt;1994年1月：Justin Hall开办&amp;ldquo;Justin&amp;rsquo;s Home Page&amp;rdquo;（Justin的个人网页），不久里面开始收集各种地下秘密的链接，这个重要的个人网站可以算是最早的博客网站之一。&lt;br /&gt;1997年4月1日：Dave Winer开始出版Scripting News。这个网站是由早期的Davenet演变而来，最早1994年10月7日。&lt;br /&gt;1997年12月：Jorn Barger最早用weblog这个术语来描述那些有评论和链接，而且持续更新的个人网站。&lt;br /&gt;1998年5月7日：Peter Merholz开始出版网站peterme.com（根据他自己的档案记录）。&lt;br /&gt;1998年9月15日：Memepool开始出版，最早的链接是关于&amp;ldquo;Alex Chiu&amp;rsquo;s Eternal Life Device&amp;rdquo;。&lt;/p&gt;&lt;p&gt;1998年，个人博客网站&amp;ldquo;德拉吉报道&amp;rdquo;率先捅出克林顿莱温斯基绯闻案；&lt;br /&gt;1999年：Peter Merholz以缩略词&amp;ldquo;blog&amp;rdquo;来命名博客，成为今天最常用的术语。&lt;br /&gt;1999年5月28日，Cam在他个人博客网站Camworld中写道：&amp;ldquo;Dave Winer开始了最早的博客网站，Camworld无需隐瞒地表示，模范和追随Scripting News。&amp;rdquo;&lt;/p&gt;&lt;p&gt;1999年7月，一个专门制作博客站点的&amp;ldquo;Pitas&amp;rdquo;免费工具软件发布，这对于博客站点的快速搭建起着很关键的作用。&lt;br /&gt;2000年4月12日：Weblogs eGroups的邮件列表终止，Jorn Barger和Dave Winer的鼻祖之争开始公开化。&lt;br /&gt;2000年8月22日：Wine在FoRK的邮件列表中贴出帖子，爆发争吵。&lt;br /&gt;2000年10月：Jakob Neilsen表示：&amp;ldquo;...一般的博客网站都不忍卒读&amp;rdquo;。&lt;br /&gt;2000年10月14日：Dave Winer暗示他的Scripting News是最早的博客网站，然后他优雅地将这项荣誉归于他很尊重的前辈&amp;mdash;&amp;mdash;WWW的发明人Tim Berners-Lee。&lt;br /&gt;2000年11月：不过Winer很快给自己找到了另一顶桂冠，Scripting News将网站的口号变为：互联网上持续运行时间最长的博客网站，开始于1997年4月1日。&lt;br /&gt;2000年12月17日：UserLand发布SuperOpenDirectory，希望成为目录创建的事实工具。&lt;br /&gt;2001年9月11日：世贸大楼遭遇恐怖袭击，博客成为重要信息和灾难亲身体验的重要来源。从此，博客正式步入主流社会的视野。&lt;/p&gt;&lt;p&gt;&amp;nbsp;2002年方兴东和王俊秀将Blog音译为博客。&lt;/p&gt;&lt;p&gt;2002年8月&amp;ldquo;博客中国&amp;rdquo;网站的开通，标志着&amp;ldquo;博客&amp;rdquo;(Blog)现象在中国互联网界的显露；&lt;/p&gt;&lt;p&gt;2002年11月18日，新闻传播学术网站&amp;ldquo;紫金网&amp;rdquo;在改版之际，推出&amp;ldquo;博客擂台&amp;rdquo;新栏目。&lt;/p&gt;&lt;p&gt;2002年12月，多数党领袖洛特的不慎之言被博客网站盯住，而丢掉了乌纱帽；&lt;/p&gt;&lt;p&gt;2003年，围绕新闻报道的传统媒体和互联网上的伊拉克战争也同时开打，美国传统媒体公信力遭遇空前质疑，博客大获全胜；&lt;/p&gt;&lt;p&gt;2003年6月，《纽约时报》执行主编和总编辑也被&amp;ldquo;博客&amp;rdquo;揭开的真相而下台，引爆了新闻媒体史上最大的丑闻之一；&lt;/p&gt;&lt;p&gt;2003年底，博客网已经成为全球中文第一博客网站。&lt;/p&gt;&lt;p&gt;2004年4月，轰动一时的Gmail测试者大部分从bloggers中产生；&lt;/p&gt;&lt;p&gt;2005年7月，曾经为全球第一博客门户立下汗马功劳的博客中国正式更名为&amp;quot;博客网&amp;quot;。&lt;br /&gt;谁是Blog之父？ &lt;br /&gt;Blog的出现才是近几年的事情，但是要书写Blog历史，却不是一件轻松的事情。许多史料必须像挖掘&amp;ldquo;古董&amp;rdquo;一样去求证，而且分歧和争议颇多。比如谁是&amp;ldquo;Blog之父&amp;rdquo;？这个问题想要有一个明确的答案是不可能的，因为牵涉到许多大名鼎鼎的人物。 &lt;br /&gt;最早的Blog原型 &lt;br /&gt;首先，哪一个是最早的Blog网站？显然最早的Blog是作为网络&amp;ldquo;过滤器&amp;rdquo;的作用出现的。因此有人认为浏览器发明人Marc Andreesen开发的Mosaic的What&amp;rsquo;s New网页就是最早的Blog网页。Justin Hall的黑社会链接网页也是最早的Blog网站原型之一。 &lt;br /&gt;最早的Blog预言家 &lt;br /&gt;谁是最早的Blog命名人？著名科幻作家William Gibson在1996年预言了职业博客：&amp;ldquo;用不了多久就会有人为你浏览网络，精选内容，并以此为生，的确存在着这样的需求&amp;rdquo;。 &lt;br /&gt;最早的Blogger &lt;br /&gt;Userland公司CEO Dave Winer，在1997年开始运作的Scripting News开始真正具备了Blog的基本重要特性。并且他将这些功能集成到免费软件&amp;ldquo;Frontier脚本环境&amp;rdquo;。不过，这个算不算是真正的最早Blog，争议颇多。有人认为，从形式上说，是Jorn Barger于1997年底建立了今天Blog网站的基本模样。 &lt;br /&gt;最早使用Weblog &lt;br /&gt;1997年12月，Jorn Barger运行的&amp;ldquo;Robot Wisdom Weblog&amp;rdquo;第一次使用weblog这个正式的名字。他将log的意义从接近航海日志那种无人称、拟客观、机械式写作，转换成较接近旅游日志的&amp;ldquo;有人称、有个性&amp;rdquo;的自由书写。 &lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/2dc0662d1eaa7859fd91045f7ea72851&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/2dc0662d1eaa7859fd91045f7ea72851/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>博客+++技巧修改</category><pubDate>Fri, 22 Jun 2007 08:38:41 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/48.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/48.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/48.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253630/1219954</fs:itemid></item><item><title>3+7,让你的博客发生质的飞跃</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253631/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=59</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=59&amp;key=b4ab4393</trackback:ping><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果互联网是一片海洋（现在都称网络了，称互联网有点过时），那么几乎每一个新事物的出现都会掀起一个浪头，差别只是有的浪小点，有的大点。小的昙花一现，大的风起云涌。博客便是掀起了一个惊天巨浪，在浪头过去之后，这个浪花却也没有重蹈别的事物的覆辙销声匿迹，而是带来了无穷无尽的大潮，至少现在看来是这样的。（这个比喻太俗了&amp;hellip;&amp;hellip;）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关于人的虚荣心，相信我们都了解，所以自己写的博客一定要让别人看到。以前&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#333300&quot;&gt;跑调&lt;/font&gt;&lt;/a&gt;的态度是我自己写我自己的，至于看不看，与他人无关，也就是刚开始的一种&amp;ldquo;&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#333300&quot;&gt;跑调，如此博客，仅为自愚自乐&lt;/font&gt;&lt;/a&gt;&amp;rdquo;的想法。但是这种想法随着朋友的说法渐渐的没有了。博客就是要大家分享，分享观点看法，分享经验教训，分享喜怒哀乐，分享我所愿意分享的，不仅仅和朋友，还要和更多的陌生人。所以博客要写，还要写得精彩，写得别人乐意看。ps：前面废话说的多了，技巧还没说-_-!.&lt;/p&gt;&lt;p&gt;博客的技巧：&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 首先，博客的写作要因人而异，不可跟风。个人的性格可以决定博客的风格，是嬉笑怒骂，是多愁善感，是鸡零狗碎，是长篇累牍，等等。每种博客风格都可以决定读者的停留。如果一个读者喜欢伤感文章，那么一个嬉笑怒骂，谈天说地的博客不一定引起他的兴趣。注意，我说的不一定，人各有异，碰到死心眼儿的读者，如果感情不对路，你的博客会在毫秒ms的时间范围内从浏览器上消失。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 个人而言，我喜欢技术类型的博客，言之有物，言之有理，遇到这样的博客，我会不自觉的停留，或是添加到收藏夹或者是&lt;a target=&quot;_blank&quot; href=&quot;http://feed.feedsky.com/fmme&quot;&gt;订阅&lt;/a&gt;他的博客。订阅这个词现在的吸引力不比IP数差。还有就是网络观察的博客，评论网络的事件，讲述网络的历程，因为看了这些我可以更了解互联网。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 其次，博客要专注，不可以己之短搏人之所长。比方，我的asp技术很好，懂得很多关于asp的东西，那么我专心写asp，偶尔写一点调剂口味的小文章；我的设计技术很强，我可以专注与设计领域，甚至是设计领域内的一个分支，像有的人专注于UI的设计，有人专注于广告设计，有人专注于产品的包装设计，甚至我们可以仅仅关注UI设计中的ICON的设计抑或是广告中字体的设计，更甚者只关注产品包装的一条拉绳的设计。虽然我们关注的范围小，但是我们精，专而通，通而精，精而后广，广而后博。东拉西扯是无聊的做法，只能是方方面面涉及，却方方面面不懂。当读者看到我们的博客有疑惑而提问时，我们给出一个专业而又易懂的解释和&amp;ldquo;对不起，我也不知道&amp;rdquo;这样的回答之间的区别，相信不用跑调说明大家心中也有数了。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再次，博客要常更新。一片死水也就只有鲁迅先生可以看出其中的道理。而不更新的博客，估计比一潭死水好不到哪里去，毕竟一潭死水仍然可以滋养扰人的蝇蚊。也在其他的地方看到说要一次更新多篇文章，当然也可以，只要更新，而且要常更新。估计一年更新一次的博客没人会看，除了作者。更新对搜索引擎的作用也不可小觑，爬虫是有耐性的，但是当它一次到你的博客里发现没更新，两次到你博客里还没更新，俗话说&amp;ldquo;事不过三&amp;rdquo;，你估计它还去你的博客里找吃的吗？所以，爬虫是要养的，饲料就是你的文章。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 补充几点，因为用了首先，其次，再次的结构，所以这一点应该是用最后了，但我还有好几点没说呢，所以叫做补充几点。领导们常这么说，尤其是学校领导，一般补充最后几点用的时间绝对在一个小时左右，至少不比前面说的时间短，让台下的学生听得迷迷糊糊。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一，要建立良好的互动关系，如果读者提问，一定要回答，最起码别人回复了你你要有个反应。好比投石问路，扔块石头连个声音都没有，这路估计没人敢走。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 二，添加订阅图标。RSS是个好东西，读者可以最快的了解你的更新。如果可能的话尽量用博客自带的Feed输出，因为有的Feed托管的更新速度实在不敢恭维，要是他的爬虫出了问题（饿死的居多&amp;hellip;&amp;hellip;），可能十天半月不会更新。现在比较好的国外feedburn，国内应该属feedsky了。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 三，简化你的博客，如果你关注的东西比较专业。不要企图把你的博客做成QQ空间，不可否认QQ空间是最成功的商业模式，但它绝对不是最成功的博客模式。即使在博客商业化的今天，也没有必要把自己的博客弱智化。简洁，高效，易用才是博客的真谛，其他的全是垃圾。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 四，优化你的文章，包括标题和内容。我在准备写一篇&lt;a href=&quot;http://www.fmme.cn/post/58.html&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;《从老鸨与妓女看中国电信与网站的纠葛》&lt;/font&gt;&lt;/a&gt;，这篇文章标题相信应该够抢眼。当然如果你有更抢眼的，不妨和&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#333300&quot;&gt;跑调&lt;/font&gt;&lt;/a&gt;分享。他们说这种风格叫做标题党，我不知道什么是标题党，知道的朋友也不妨告诉跑调一下。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 五，发散你的思维，让你的博客奇思妙想。一个图片，构造出N中情景，不妨实验一下。这个我不擅长，略过。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 六，&lt;a href=&quot;http://feed.feedsky.com/fmme&quot;&gt;&lt;font color=&quot;#ff6600&quot;&gt;rss全文输出&lt;/font&gt;&lt;/a&gt;。不要小家子气，害怕全文输出别人都看rss了不浏览你的博客了。那就错了。一定要全文输出，方便读者。要不读者会认为你这个人太龌龊，太小气了。只要你的文章好，不要烦愁没人到你博客来。而好的博客，通常读者一天打开电脑干的第一件事情就是看你的博客。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;七，暂时没想起来，也暂时到此为止。要不就成了老婆子的裹脚布又臭又长了。这个就是第七点了。文章短小精悍，言简意赅。不可拖拖沓沓，无病呻吟。&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;本文跑调博客原创发表，版权所有，转载请注明出处&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 终于写完了，全是&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#993300&quot;&gt;跑调&lt;/font&gt;&lt;/a&gt;的个人观点，如果不慎与那位高人有冲突或者意见相悖，&lt;a href=&quot;http://www.fmme.cn/guestbook.asp&quot;&gt;&lt;font color=&quot;#993300&quot;&gt;不妨一起讨论一下&lt;/font&gt;&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#993300&quot;&gt;本文跑调博客原创发表，遵循创作共用原则。&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#993300&quot;&gt;版权所有，转载请注明出处&lt;/font&gt;&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#993300&quot;&gt;www.fmme.cn&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;Creative Commons License&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;本&lt;span rel=&quot;dc:type&quot; href=&quot;http://purl.org/dc/dcmitype/Text&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;&gt;作品&lt;/span&gt;采用&lt;a target=&quot;_blank&quot; rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh&quot;&gt;&lt;font color=&quot;#5db429&quot;&gt;知识共享署名-非商业性使用-相同方式共享 3.0 许可协议&lt;/font&gt;&lt;/a&gt;进行许可。&lt;/p&gt;&lt;p&gt;本文有&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#800000&quot;&gt;跑调博客&lt;/font&gt;&lt;/a&gt;原创发表，如需转载请注明出处。&lt;/p&gt;&lt;p&gt;署名方式：&lt;/p&gt;&lt;p&gt;&amp;nbsp;文章出处：&lt;a href=&quot;http://www.fmme.cn&quot;&gt;&lt;font color=&quot;#800000&quot;&gt;跑调博客 www.fmme.cn&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;原文地址：&lt;a href=&quot;http://www.fmme.cn/post/59.html&quot;&gt;&lt;font color=&quot;#800000&quot;&gt;http://www.fmme.cn/post/59.html&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/46015498404226b74564b213e9f3c8d9&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/46015498404226b74564b213e9f3c8d9/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>博客+++技巧修改</category><pubDate>Wed, 13 Jun 2007 00:22:37 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/59.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/59.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/59.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253631/1219954</fs:itemid></item><item><title>宝宝档案</title><link>http://item.feedsky.com/~feedsky/paodiao/~1218250/36253632/1219954/1/item.html</link><wfw:comment>http://mypd.136.tofor.com/</wfw:comment><wfw:commentRss>http://mypd.136.tofor.com/sydication.asp?cmt=64</wfw:commentRss><trackback:ping>http://mypd.136.tofor.com/cmd.asp?act=tb&amp;id=64&amp;key=23473e1e</trackback:ping><description>&lt;img onload=&quot;ResizeImage(this,580)&quot; src=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/img/45/review.gif&quot; alt=&quot;&quot; title=&quot;&quot;/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;据国外报道，几乎每个家长在孩子出生之后，都会为孩子建立一个成长档案，从健康，成长指数等方面指导家长，关心孩子。在中国，由于受到一些历史问题的制约，成长档案这个新兴概念尚未得到普及，但是在科学的育儿知识力量的推动下，当今父母对孩子的成长需求十分关注。&lt;br/&gt;&lt;a href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/45/r.html&quot; target=&quot;_blank&quot;&gt;摇篮网&lt;/a&gt;在金猪年中隆重推出婴儿能力在线测评系统，很好的解决了家长这个需求，为您量身定制合理科学的育儿指导方案。 &lt;br/&gt;接到这个广告有些时间了，现在才在这里写是因为以前写的都不理想，所以重新写一下。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;根据&lt;a href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/45/r.html&quot; target=&quot;_blank&quot;&gt;摇篮网&lt;/a&gt;的介绍，成长档案可以在用户注册之后永久保存，那么就如同一个个人的成长经历一样，家长可以给宝宝一个礼物，一个记录宝宝成长的礼物。就如同眼下很多年轻的父母喜欢给自己的宝宝建立一个博客一样，记录宝宝成长的点点滴滴。对喜欢孩子的用户来说，也可以给自己的邻家小孩或者是朋友的孩子做个测试，满足用户喜欢孩子的心里，在这方面，&lt;a href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/45/r.html&quot; target=&quot;_blank&quot;&gt;摇篮网&lt;/a&gt;做的很是不错。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我用一个老师的孩子的成长状况做了测试，发现要比实际的成长快两个月，而且曲线很平滑。&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;列举一下测试第三项：社会适应方面试题&lt;br/&gt;空腹时抱起，头转向母亲乳头；用手指轻触宝宝脸颊，宝宝头转向手指，并能张开嘴巴；用手指触摸宝宝的上唇的中央，宝宝很快会张开嘴巴；喂奶不及时，宝宝嘴会吸吮“围嘴”。但是这个是一个人的天生的本能条件反射，我感觉用做测试好像有点欠妥当了。这个如果都不能做到，小孩子可能都有问题了吧~~~&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在网上看到很多评论了，说是测试结果要大，这个是不是&lt;a href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/45/r.html&quot; target=&quot;_blank&quot;&gt;摇篮网&lt;/a&gt;后台的设置原因呢？毕竟家长都希望自己的孩子健康成长~&lt;a href=&quot;http://review.feedsky.com/review/feedsky/paodiao/~/txt/45/r.html&quot; target=&quot;_blank&quot;&gt;摇篮网&lt;/a&gt;可能也是满足了一下家长的心愿吧，不过，这样的预测有点机械化，如果可以多加一些项目，更细致一点，那样就好多了。{这里又涉及到一个用户体验和数据收集准确度的矛盾，看怎么解决吧}&lt;br/&gt;当然，给宝宝建立宝宝档案确实是一项很迷人的业务。&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/paodiao/d783503fcb7d4b04fca7c61d09efcc36&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/paodiao/d783503fcb7d4b04fca7c61d09efcc36/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><category>广告+++公益推广</category><pubDate>Fri, 01 Jun 2007 22:10:05 +0800</pubDate><author>wangjunqiang.swust@gmail.com (PaoDiao)</author><comments>http://mypd.136.tofor.com/post/64.html#comment</comments><guid isPermaLink="false">http://mypd.136.tofor.com/post/64.html</guid><dc:creator>wangjunqiang.swust@gmail.com (PaoDiao)</dc:creator><fs:srclink>http://mypd.136.tofor.com/post/64.html</fs:srclink><fs:srcfeed>http://mypd.136.tofor.com/rss.xml</fs:srcfeed><fs:itemid>feedsky/paodiao/~1218250/36253632/1219954</fs:itemid></item></channel></rss>