﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-翠湖月色-随笔分类-网站应用</title><link>http://www.blogjava.net/matthew2006/category/27562.html</link><description>No Buddha tree at all,And bright mirror nor.Now nothing at all,How dusts any more ? </description><language>zh-cn</language><lastBuildDate>Sat, 05 Jan 2008 20:04:41 GMT</lastBuildDate><pubDate>Sat, 05 Jan 2008 20:04:41 GMT</pubDate><ttl>60</ttl><item><title>实时BT种子搜索引擎-YouTorrent</title><link>http://www.blogjava.net/matthew2006/archive/2008/01/05/173050.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sat, 05 Jan 2008 13:55:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2008/01/05/173050.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/173050.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2008/01/05/173050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/173050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/173050.html</trackback:ping><description><![CDATA["The world's first real-time torrent comparison search engine."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -正如上面的口号,YouTorrent的最大特点是提供实时BT种子搜索,并以比较的形式列出各BT种子的日期.这样可以更加方便用户的选择,也弥补了BT在种子搜索方面不如Emule的状况.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;YouTorrent可以搜索到很多国外BT主力站点的种子文件.如,The Pirate Bay, IsoHunt, MyBittorrent, NewTorrents, SuprNova, Monova, Vuze, BitTorrent, LegitTorrents, SeedPeer&nbsp;和 BTjunkie.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;面对Emule的下载速度问题,也许YouTorrent又让我们燃起对BT的信心.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 访问YouTorrent:<a href="http://www.youtorrent.com/">http://www.youtorrent.com/</a><br />
<br />
TorrentFreak公布的2007年度十大BT种子站点:<br />
<p>1. <a href="http://mininova.org/">Mininova</a> <br />
<br />
世界上最受欢迎的BT站点. <br />
<br />
Alexa rank: 46<br />
<br />
<h4>2. <a href="http://isohunt.com/">IsoHunt</a></h4>
仅次于Mininova,在美国本土无法访问. <br />
<br />
Alexa rank: 143<br />
<br />
<h4>3. <a href="http://thepiratebay.org/">The Pirate Bay</a></h4>
号称要建立盗版国的瑞典海盗湾<br />
<br />
Alexa rank: 147<br />
<br />
<h4>4. <a href="http://torrentz.com/">Torrentz</a> </h4>
它不直接提供.torrent文件,而是提供评论系统,私人书签等功能. <br />
<br />
Alexa rank: 160<br />
<br />
<h4>5. <a href="http://btjunkie.org/">BTjunkie</a></h4>
今年增长最快的BT站点,但是也经常被ISP扫地出门.<br />
<br />
Alexa rank: 445<br />
<br />
<h4>6. <a href="http://torrentspy.com/">TorrentSpy</a></h4>
06年的BT站点冠军,由于MPAA的原因在美国本土也无法访问.<br />
<br />
Alexa rank: 461<br />
<br />
<h4>7. <a href="http://torrentportal.com/">TorrentPortal</a> </h4>
今年最沉默奖<br />
<br />
Alexa rank: 481<br />
<br />
<h4>8. <a href="http://www.gamestorrents.com/">GamesTorrents</a></h4>
一个西班牙语的Torrent站点能挤入排行榜实为不易.<br />
<br />
Alexa rank: 583<br />
<br />
<h4>9. <a href="http://torrentreactor.net/">TorrentReactor</a></h4>
拥有4年悠久历史的BT站点.<br />
<br />
Alexa rank: 604<br />
<br />
<h4>10. <a href="http://btmon.com/">BTmon</a> </h4>
最年轻的BT站点 <br />
<br />
Alexa rank: 673<br />
<img src ="http://www.blogjava.net/matthew2006/aggbug/173050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2008-01-05 21:55 <a href="http://www.blogjava.net/matthew2006/archive/2008/01/05/173050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐一个我在使用的免费网络存储服务(网盘)</title><link>http://www.blogjava.net/matthew2006/archive/2007/12/24/170054.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Mon, 24 Dec 2007 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/12/24/170054.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/170054.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/12/24/170054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/170054.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/170054.html</trackback:ping><description><![CDATA[对于喜欢写博客的朋友，拥有一个好的免费网盘是件很方便的事情。一个好的或者适合我的网盘应该具有如下特点：容量大，服务稳定，支持外链，安全性能高，最重要的是免费。<br />
<br />
<span style="color: red;"><a href="http://www.namipan.com/"><span style="color: #080000;">纳米盘</span></a><span style="color: #080000;">是个不错的选择。使用了一个多月，感觉访问速度比较快。也许是国内的产品的原因。目前处于公开测试阶段。<br />
</span><span style="color: red;"><span style="color: #080000;">容量方面：总容量大小是4G，单个文件目前只支持200M以下。<br />
稳定方面：由于目前还处于测试阶段，不知道今后发展会怎样。<br />
支持外链：外链对于博客空间小的情况很实用，可以方便的利用第三方的网络流量。下面是我的几本书。<br />
<a href="http://www.namipan.com/d/JavaScript%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97.pdf/0a055c314c5af56ca27ca38662e5b98e45b80fc300bf3e01">JavaScript权威指南.pdf</a><br />
<a href="http://www.namipan.com/d/%E4%BA%BA%E6%9C%88%E7%A5%9E%E8%AF%9D%E4%B8%AD%E6%96%87%E7%89%88.pdf/277f6f96280e80b8c7a9ca8d720b3ab24220f1f475a62800">人月神话中文版.pdf</a><br />
</span></span></span>安全性：支持断点续传，可以对不想共享的资料加密。<br />
另外，还提供一个专用的下载机器人。一个桌面应用程序。网站的总体页面比较简约，操作比较方便。<br />
网站还发布了一个基于wordpress的博客，用来公告很更新服务。<br />
<img src ="http://www.blogjava.net/matthew2006/aggbug/170054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-12-24 14:47 <a href="http://www.blogjava.net/matthew2006/archive/2007/12/24/170054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网站排名优化相关概念(转)</title><link>http://www.blogjava.net/matthew2006/archive/2007/12/16/168092.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 16 Dec 2007 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/12/16/168092.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/168092.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/12/16/168092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/168092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/168092.html</trackback:ping><description><![CDATA[ 所谓网页排名优化，是指迎合搜索引擎的网站排名规则进行网站的规划，网页的设计，以确保网站能在搜索引擎上获得较好的排位，让更多的潜在客户能够很快地找到你，从而求得网络营销效果的最大化。 

        一、关键词的使用   
　    我们寻找关键词的目的就是为了要将它们用在网页中。看了前面有关搜索引擎工作原理（收录规则）以及网页排名规则的介绍，你也许还记得搜索引擎是如何对用户的查询作出反应的。它首先以输入的关键词为搜索条件，在其数据库中检索包含该关键词的网页，然后按照&#8220;匹配/位置/频次&#8221;原则返回网站排名搜索结果。  

　    所以为了让你的网页出现在以事先确定的关键词为条件的搜索结果中，你就必须在网页中使用关键词。放置关键词的地方包括：标题、META标签、网页正文、ALT标签等等。但有一点要注意，不要过分重复某单个的关键词，而且也不能象在META关键词标签中那样简单地排列关键词，而是应该遵循必要的语法规则，形成自然流畅的语句，让访问者看起来觉得很舒服，同时还要顾及对顾客是否具有足够的吸引力。总之牢记一个原则：对访问者有吸引力和价值的内容，搜索引擎也不会熟视无睹。  

　    二、网站主题规划   
　    注意不要让你的网站主题过于分散。因为网站主题越集中，一般情况下网站所有者在这方面投入的精力会更多，因此所提供信息的质量也会越高。我们知道，搜索引擎一直致力于向用户提供高质量的信息搜索服务，搜索引擎优化可以加快网站推广速度,所以它会将那些提供有价值信息的网站排名提前，优先返回给用户。  
　    如果网站内容覆盖范围很广，而且确实又需要保留众多的主题，这种情况下怎么办？还是同样的原则，只要你将网站信息分门别类进行合理的组织，自然就会形成一个个相对集中的主题，那么搜索引擎自然会给你一个靠前的网站排名。

        三、丰富网站内容与网站受欢迎程度   
　    这两者是相辅相成的，有着丰富内容的网站通常也会受访问者的欢迎。请注意这里的内容丰富并不是指内容的繁杂，而是指内容的深度。  

　    搜索引擎在排名网站时，不仅要看网页的信息相关程度，同时也会考虑网站的知名度如何，比如外部链接有多少?链接的网站内容跟本站相关程度如何,网页的点击率有多高等等。因此一个内容充实的网站肯定会排在内容贫乏的网站前面,网站的内容是非常重要的。


 <img src ="http://www.blogjava.net/matthew2006/aggbug/168092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-12-16 18:29 <a href="http://www.blogjava.net/matthew2006/archive/2007/12/16/168092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐:音乐搜索引擎- Songza</title><link>http://www.blogjava.net/matthew2006/archive/2007/11/27/163394.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Tue, 27 Nov 2007 02:39:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/11/27/163394.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/163394.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/11/27/163394.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/163394.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/163394.html</trackback:ping><description><![CDATA[&nbsp; <a href="http://www.songza.com/" target="_blank">Songza</a>是一个支持中文音乐搜索的国外搜索引擎。通过音乐名称或者歌手姓名，来查找你想要听的歌曲。并<br />
<br />
提供一个在线播放器，只需要点击选中的歌曲就可以添加到拨放列表。同时，可以通过youtube网站播放，也可以<br />
<br />
很方便的把歌曲内嵌到你的博客或主页中播放。当然也可以通过它给的链接地址下载。还可以对你喜欢的歌曲进<br />
<br />
行投票，同时网站首页会显示得票最高的歌曲排行榜。从而，你可以知道其他人在听什么歌，喜欢听什么歌曲。<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; 由于我的网络和机器都很慢，所以不知道Songza的正常访问速度杂样。也许，由于国外网站的原因，会影响<br />
<br />
其播放质量。<br />
<br />
不妨一试：<a href="http://www.songza.com/" target="_blank">www.songza.com</a>
<img src ="http://www.blogjava.net/matthew2006/aggbug/163394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-11-27 10:39 <a href="http://www.blogjava.net/matthew2006/archive/2007/11/27/163394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RSA非对称加密的一些非常规应用-转</title><link>http://www.blogjava.net/matthew2006/archive/2007/11/25/162932.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 25 Nov 2007 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/11/25/162932.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/162932.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/11/25/162932.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/162932.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/162932.html</trackback:ping><description><![CDATA[前些时候，大概7月份看了些SSL协议的东西，对前人非常的佩服。把非对称加密的安全性和对称加密的快速性结合起来使用，保留了各自的长处。整个数据传输过程中，通过非对称加密在不安全的区域安全的传输了用于对称加密的密钥，实在是创造性的思维。
<br />
<br />
前天晚上洗澡的时候，突然有了几个新的想法，加上以前的一点发现，就有了这篇文章和几行代码。现在觉得非对称加密还真的很有意思啊，洗澡也很有意思，难怪阿基米德洗澡能够发现浮力定理。我们不够强大，可能是因为洗澡不够吧。
<br />
<br />
一. RSA替换HTTPS保证安全传输敏感数据
<br />
<br />
目前大多数的web应用在注册或者登录的时候，或者其他任何涉及到用户帐户，密码，以及信用卡号等等敏感数据传输的时候，一般都毫不犹豫的采用了
HTTPS加密传输的方式来进行。比如Gmail，Yahoo Mail，Live
Mail等国际性的邮箱，都是用了这种方式。确实，使用HTTPS是一种比较安全的方法，但是这样做从成本角度来说，并不是最优的。
<br />
<br />
使用1024位密钥的HTTPS传输，在相同硬件配置的情况下，性能基本上要损失掉30%左右。大量的CPU时间花费到了对数据的加密解密以及证
书认证，传输，SSL握手等方面。对于千万用户级别的应用这些损失是难以忽略掉的，因此大公司一般都会购买SSL硬件加密卡，使用硬件进行加密解密。
<br />
<br />
鉴于RSA等非对称加密算法的public
key是可以公开的，因此可以使用这种方式来传输数据，在某些场合取代昂贵的HTTPS传输。比如在邮箱的登录入口，用户点击提交按钮的时候，在本地使用
JS代码将用户名和密码进行RSA加密。虽然public key明文存在于JS代码中，客户端可见，但是仅仅具备public
key是无法推算出private key的，因此无法对加密后的数据进行捕获分析，加密后的数据可以安全的通过互联网传输。
<br />
<br />
前些时间对国内国外的一些大型网站登录入口做了些分析，发现只有tencent的邮箱是使用的这种方式。他们用JS做了一个类，提供RSA加密算法的各种方法，在邮箱登录表单提交的时候调用加密。JS类的地址为<a href="http://mail.qq.com/zh_CN/htmledition2/js/safeauth.js" target="_blank">http://mail.qq.com/zh_CN/htmledition2/js/safeauth.js</a>，
有兴趣的可以自己去研究。使用这种方式之后，服务端的计算量大大减少，只需要在用户提交的时候进行一次解密操作就可以了。而且这个解密，可以使用C语言做
成模块，给前端展现语言调用，提高效率。如果有更高的安全性考虑，可以做一些改进，比如在客户端提交表单之前，在发送数据里面加入完整性检验等等，自由发
挥即可。
<br />
<br />
二. 独立的水印系统
<br />
<br />
现在的论坛或者blog，都需要使用水印来防范强行破解密码的攻击方式，和防范发帖机器人的破坏。但是很多水印和应用系统结合在一起，不方便扩充和给第三方提供服务。这几天想到可以使用RSA加密来实现一套独立的水印算法，并且可以方便的提供给任意的第三方安全使用。
<br />
<br />
主要思路是这样的，首先生成一对公钥和私钥。将公钥发布给需要使用水印服务的第三方，私钥保存在水印生成方。在使用方随机生成一个字符串，随后使
用水印方提供的public key，使用RSA算法进行加密，将加密后的字符串发送给生成水印方。生成方使用private
key对这个字符串进行解密，画出图形，将数据传输给水印使用方。虽然加密后的字符串在水印使用方的HTML源代码中明文可见，但是同上所说的，没有
private
key是无法解密的。对于安全性的一些加强，可以考虑同时在使用方与生成方之间共享一个用于对称加密的字符串。先对随机生成的水印数字进行对称加密，然后
再RSA非对称加密，这样可以在万一丢失private key的情况下，仍然不容易马上被攻破。
<br />
<br />
为了验证我的这个思路，今天写了一小段验证代码，发现还是比较好用的。我主要是把Pear里面的RSA类扒出来了，稍微改了一点点，然后做了一套测试系统。简单的代码如下，详细的见附件。
<br />
<br />
<strong>代码:</strong>
<table align="center" bgcolor="#d5d5d5" border="0" cellpadding="5" cellspacing="1" width="100%">
    <tbody>
        <tr>
            <td bgcolor="#efefef"><font color="#0000ff">
            <br />
            /*
            <br />
            <br />
            Global.php&nbsp;&nbsp;通用函数，调用RSA类提供加密解密功能。
            <br />
            <br />
            云舒 ， 2007年10月1日
            <br />
            <br />
            */
            <br />
            function encrypt( $plain_text )
            <br />
            {
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$public_key =
            'YTozOntpOjA7czozMjoiS1vW5NNLH39farB+HPE/U0A1fs1I7ja81GJxGrrjsYEiO2k6MTtzOjM6IgEAASI7aToyO3M6NjoicHVibGljIjt9';
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$key = Crypt_RSA_Key::fromString($public_key);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;check_error($key);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$rsa_obj = new Crypt_RSA;
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;check_error($rsa_obj);
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$enc_text = $rsa_obj-&gt;encrypt($plain_text, $key);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;check_error($rsa_obj);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;return $enc_text;
            <br />
            }
            <br />
            <br />
            function decrypt( $enc_text )
            <br />
            {
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$private_key =
            "YTozOntpOjA7czozMjoiS1vW5NNLH39farB+HPE/U0A1fs1I7ja81GJxGrrjsYEiO2k6MTtzOjMyOiIButTavL72eeXVEa8E5WkAJthoHqmHIyo3HblsSJG0aiI7aToyO3M6NzoicHJpdmF0ZSI7fQ==";
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$key = Crypt_RSA_Key::fromString($private_key);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;check_error($key);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$rsa_obj = new Crypt_RSA;
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;check_error($rsa_obj);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$rsa_obj-&gt;setParams(array('dec_key' =&gt; $key));
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;check_error($rsa_obj);
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$number = $rsa_obj-&gt;decrypt($enc_text);
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;return $number;
            <br />
            }
            <br />
            </font></td>
        </tr>
    </tbody>
</table>
<br />
<br />
<strong>代码:</strong>
<table align="center" bgcolor="#d5d5d5" border="0" cellpadding="5" cellspacing="1" width="100%">
    <tbody>
        <tr>
            <td bgcolor="#efefef"><font color="#0000ff">
            <br />
            /*
            <br />
            <br />
            水印需求方，随机生成字符串，然后加密发送给水印生成方
            <br />
            <br />
            云舒 ， 2007年10月1日
            <br />
            <br />
            */
            <br />
            require_once 'Global.php';
            <br />
            <br />
            $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
            <br />
            $str_a = $chars;
            <br />
            $str_b = $chars;
            <br />
            $str_c = $chars;
            <br />
            $str_d = $chars;
            <br />
            <br />
            $str = $str_a.$str_b.$str_c.$str_d;
            <br />
            $enc_data = encrypt( $str );
            <br />
            <br />
            echo
            '&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;img
            src="CreateImg.php?number=' .rawurlencode( $enc_data ). '"
            /&gt;&lt;/body&gt;&lt;/html&gt;';
            <br />
            </font></td>
        </tr>
    </tbody>
</table>
<br />
<br />
<strong>代码:</strong>
<table align="center" bgcolor="#d5d5d5" border="0" cellpadding="5" cellspacing="1" width="100%">
    <tbody>
        <tr>
            <td bgcolor="#efefef"><font color="#0000ff">
            <br />
            /*
            <br />
            <br />
            水印提供方，获取需求方传递过来的参数，解密，画出图形
            <br />
            <br />
            云舒 ， 2007年10月1日
            <br />
            <br />
            */
            <br />
            require_once 'Global.php';
            <br />
            <br />
            header('Content-type: image/gif');
            <br />
            if( isset( $_GET["number"] ) )
            <br />
            {
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;$enc_number = rawurldecode( $_GET["number"] );
            <br />
            }
            <br />
            else
            <br />
            {
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;exit;
            <br />
            }
            <br />
            <br />
            $de_number = decrypt( $enc_number );
            <br />
            $chars = preg_split( '//', $de_number );
            <br />
            <br />
            $im = imagecreate(75,30);
            <br />
            <br />
            $bg = imagecolorallocate($im, 255, 255, 255);//背景
            <br />
            $font_color = imagecolorallocate($im, 0, 0, 0);//字
            <br />
            <br />
            imagestring($im, mt_rand(5,9), mt_rand(0,5), mt_rand(0,5), $chars[1], $font_color);
            <br />
            imagestring($im, mt_rand(5,9), mt_rand(15,25), mt_rand(0,5), $chars[2],&nbsp;&nbsp;$font_color);
            <br />
            imagestring($im, mt_rand(5,9), mt_rand(30,40), mt_rand(0,5), $chars[3],&nbsp;&nbsp;$font_color);
            <br />
            imagestring($im, mt_rand(5,9), mt_rand(45,50), mt_rand(0,5), $chars[4],&nbsp;&nbsp;$font_color);
            <br />
            <br />
            // 随机点
            <br />
            for ($i=1; $i&lt;=10; $i++)
            <br />
            {
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;imagestring($im,mt_rand(0,5),mt_rand(-5,63),mt_rand(-5,23),".",imageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
            <br />
            }
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;
            <br />
            imagegif($im);
            <br />
            imagedestroy ($im);
            <br />
            <br />
            </font></td>
        </tr>
    </tbody>
</table>
<br />
<br />
三. 防御伪造域的垃圾邮件
<br />
<br />
垃圾邮件现在也是网络上很头疼的一个问题，使用非对称算法的签名功能，可以对伪造域的垃圾邮件进行鉴别，需要邮件接收方服务器的支持。理论不多说
了，直接举例。假设我是mail.icylife.net域，我给mail.ph4nt0m.org发邮件。但是有人自己架设了mail服务器，伪装成<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#101;&#98;&#109;&#97;&#115;&#116;&#101;&#114;&#64;&#105;&#99;&#121;&#108;&#105;&#102;&#101;&#46;&#110;&#101;&#116;">webmaster@icylife.net</a>给<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#101;&#98;&#109;&#97;&#115;&#116;&#101;&#114;&#64;&#112;&#104;&#52;&#110;&#116;&#48;&#109;&#46;&#111;&#114;&#103;">webmaster@ph4nt0m.org</a>发邮件，试图取得他的信任，这种问题如何处理？好办，使用非对称加密的签名验证功能。
<br />
<br />
首先，我在<a href="http://mail.icylife.net/publickey.txt" target="_blank">http://mail.icylife.net/publickey.txt</a>存放我的公钥文件，私钥自己保存好。然后对邮件服务器进行一些改进，对于本域发出去的所有邮件，包括邮件正文和接受者一起做一个签名，把签名附在邮件中一起发出去。而mail.ph4nt0m.org域中的邮件服务器在接收邮件时，从<a href="http://mail.icylife.net/publickey.txt" target="_blank">http://mail.icylife.net/publickey.txt</a>取得我的公钥，对签名进行验证，如果签名不对，马上提示用户遭受源域名伪造攻击。对于攻击者来说，他没有我的私钥，是不可能伪造出同样的签名的。
<br />
<br />
原文地址:http://www.icylife.net/yunshu/show.php?id=471<br />
<img src ="http://www.blogjava.net/matthew2006/aggbug/162932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-11-25 09:29 <a href="http://www.blogjava.net/matthew2006/archive/2007/11/25/162932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QQ网站登录的RSA加密传输缺陷分析-转</title><link>http://www.blogjava.net/matthew2006/archive/2007/11/25/162914.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sat, 24 Nov 2007 17:18:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/11/25/162914.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/162914.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/11/25/162914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/162914.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/162914.html</trackback:ping><description><![CDATA[QQ网站登录处没有使用https进行加密，而是采用了RSA非对称加密来保护传输过程中的密码以及敏感信息的安全性。 QQ是在javascript中实现整个过程的。这个想法非常新颖，但是也是存在严重缺陷的。如果被黑客利用，则可能被捕获明文密码。<br />
<span style="font-weight: bold;">分析报告如下：</span><br />
<br />
Author: axis<br />
Date: 2007-11-23<br />
Team: http://www.ph4nt0m.org&nbsp; (http://pstgroup.blogspot.com)<br />
Corp: Alibaba B2B Corp / Infomation Security<br />
<br />
这个想法非常新颖，详细可以参考云舒写过的 《RSA非对称加密的一些非常规应用》，地址为<a href="http://www.icylife.net/yunshu/show.php?id=471">http://www.icylife.net/yunshu/show.php?id=471</a><br />
<br />
这个原理简单描述为下：<br />
1. 在server端生成一对RSA密钥，包括public key 和 private key<br />
2. public  key传输给客户端浏览器， 客户端浏览器用public key加密敏感数据，比如密码；加密后的密文传回给server，然后server用 private key解密。<br />
3. 注意private key只保存在server端，而public key则分发给所有人。 由于 private key只有server知道，所以密文即使被截获了，也无法解开。<br />
<br />
这个解决方案其实还是非常好的，至少他防住了大部分的攻击，但是为什么说它是无法替代https，是有缺陷的呢？<br />
<br />
因为这个方案无法防止中间人攻击 （man-in-the-middle）。<br />
<br />
攻击过程如下：<br />
1. 攻击者通过MIM（比如arp欺骗等）劫持server与客户端浏览器之间的http包<br />
2. 攻击者生成一对伪造的RSA密钥： fake public key/fake private key<br />
3. 攻击者将js文件中的public key替换为fake public key，并传输给客户端浏览器<br />
4. 客户端浏览器用 fake public key加密敏感数据，比如密码，并将加密后的数据传输给攻击者<br />
5. 攻击者用fake private key解密，获得明文密码等<br />
6. 攻击者用server的public key加密明文数据，并传送给server<br />
<br />
整个过程中不会出现任何提示，而用户的明文数据则被窃取了！<br />
<br />
而luoluo则提出来一个更邪恶的想法（顺便在这里祝luoluo今天生日快乐！），他提出可以直接将加密的介质修改。<br />
<br />
比如，如果是用js在做加密，则修改js，如果是用flash或java applert做加密，则替换flash或applet，直接去掉这种加密机制，捕获明文密码。<br />
<br />
那么为什么说https是不可替代的呢？ 因为当实施中间人攻击的时候，浏览器会提示证书已改变（具体参考云舒的关于https安全性的文章），这种机制是内建在浏览器里的，攻击者无力改变它。所以这种报警是非常有意义的。<br />
<br />
而如果像QQ一样使用js进行RSA加密传输，实施中间人攻击的时候，是不会有任何提示的，一切都会在用户不知情的情况下发生。<br />
<br />
这种情况和以前windows的RDP中间人攻击情况一样: 当使用3389端口的rdp协议登录时候，证书改变的时候没有任何提示。<br />
<br />
而相对设计比较安全的ssh协议，ssl协议等，则都会针对证书改变做出提示，防止中间人攻击。<br />
<br />
所
以，QQ的这个方案只能保护传输过程中一般的sniffer攻击，但是考虑到当今网络环境下，大部分的sniffer都是基于arp欺骗的，所以这种保护
机制其实是非常脆弱的。它只能对抗目前已知的arp
sniffer软件，而对专门开发的替换关键字的软件，则无法有效防御。一旦这种专门针对QQ网站登录的sniffer软件被开发出来并且提供下载，灾难
就不远了。<br />
<br />
不过这个方案还是有积极意义的，除去不能抵抗中间人攻击的缺陷外，其他方面都比较完美，特别是成本低廉。如果与https结合使用来防止中间人攻击的话，整个方案就更完美了。<br />
<br />
之前曾与朋友戏言QQ是否会因为我这一篇文章而多花费几百万的经费去购买https证书和https硬件加速服务器，现在让我们拭目以待，看看QQ是否是真正的用户至上。<br />
<img src ="http://www.blogjava.net/matthew2006/aggbug/162914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-11-25 01:18 <a href="http://www.blogjava.net/matthew2006/archive/2007/11/25/162914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>