2006年11月30日星期四

软件加密锁编程技巧

  本文将介绍软件加密锁的一些编程技巧,以及软件开发者将如何编写安全可靠的代码,如何对付各种各样的加密狗破解,编写加密程序时应该尽量避免的一些问题等等。以下是全文。

  一、加密狗加密的基本原理

  开发商程序通过调用硬件加密狗的接口模块对硬件加密狗操作,硬件加密狗响应该操作并通过接口模块将相应数据返回给开发商的应用程序。开发商的应用程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表明没有正确的狗,开发商可以将应用程序终止运行,或者让应用程序以错误的方式执行。简要示意如下:

软件加密锁编程

  二、常用的解密方法

  1、反汇编后静态分析: W32Dasm、IDA Pro

  2、用调试工具跟踪动态分析:SoftICE、TRW2000

  3、针对各种语言的反汇编工具:VB、Delphi、Java等

  4、其他监视工具:FileMon、RegMon 等

  三、如何提高加密强度

  下面,我们以Sentinel SuperPro加密锁为例,详细介绍一下使用如何在编程的过程中提高加密强度的方法。

  1、反DEBUG解密的编程方法和技巧

  访问狗之后不要立即做判断,判断狗不正确后,不要立即提示,或者不提示。开发商在程序各个部分插入校验算法的代码,用以增加程序代码的复杂性,防止解密者轻易跟踪发现全部的校验代码。校验代码插入程序的频率越高,破解难度越大,软件就越安全。

  重要的字符串不要在程序中以明文出现,应该使用算法动态生成。

  在不影响程序效率的情况下,尽量多写一些查狗的函数,彼此要有区别,使用不同的算法,多一些查狗出错的标志,让这些标志参与运算,在不同的模块中,使用不同的查狗函数。

  针对某一具体查询校验,都有三步骤组成:查询得到响应串;比较响应串和查询串是否匹配;根据校验结果执行相应的步骤。建议三个步骤要延时执行。最好将三步骤相互远离些,甚至放到不同的子程序或函数中。例如:执行“查询得到响应串”后,相隔50行执行“比较响应串和查询串是否匹配”,假如程序需要调用一个函数。那么就在这个函数里执行“执行相应的步骤”。解密者在跟踪过程中,即使发现了其中一部分程序代码,但很难发现另外两部分代码和全部三部分之间的关联。程序难于被破解。

  将加密锁返回的“响应串”作为程序中的参数使用。例如:算法单元返回“响应串”是“87611123”,而程序中需要使用“123”这个参数。程序中得到“响应串”后,将“响应串”减去“87611000”得到参数。如果解密者修改代码跳过查询校验加密锁部分,参数将是错误值,从而会使程序运行紊乱。

  程序在验证加密算法过程中,一般情况下验证数据不正确程序就会选择退出。这样一来很容易被解密者发现代码特征,跳过查询校验部分。开发商设计查询校验部分时,如果程序校验数据不正确,程序也不退出可以继续执行一些无用的操作使程序紊乱,用以隐蔽代码迷惑解密者。

  开发商的软件可能有多个模块,查狗的模块或接口不要用显而易见的名字来命名,这样会令解密者更容易找到加密点,当然也可以利用一些名字来迷惑解密者,尤其是dll,引出函数时甚至可以不用函数名。

  给查狗函数加入一定的随机性,例如,随机地执行某一API函数,或者在狗的存储区中划定一小块区域作随机读写,读写地址、读写内容、读写长度都是随机取的,这样可以很好地防止那些模拟工具。

  试用版与正式版要分开,试用版不提供的功能,代码已经删掉,使得不可能利用试用版破解得到正式版。

  在大多数情况下,破解是通过更改exe 或 dll 文件实现的,要在程序中检查exe或dll文件的完整性,即利用某种算法计算出整个文件的校验和,在程序中比较,如果文件被更改,校验和就会变化,这类算法网上有很多,可以查得到。另外,exe和dll之间要相互认证,一方面防止dll被替换,另一方面防止非法exe访问dll。

  小结:应该尽量避免的问题

  1)访问狗、做判断、提示用户写在一起

  2)重要的字符串在程序中以明文出现

  3)在狗中存放字符串,程序中读出比较

  4)调用同一函数或判断同一个全局标志查狗

  5)试用版软件同正式版软件是同一份

  6)查狗的模块或接口名字太明显

  7)程序无随机性,每次运行执行路径都一样

  8)没有检查exe 或 dll 文件的完整性,exe 和 dll 之间也没有相互认证

  2、反“监听仿真”软件保护锁的编程方法

  1)随机查询法:开发商使用SuperPro开发工具生成大量查询、响应对,如:1000 对,并在程序中使用这些校验数据。在程序运行过程中,从1000 对查询、响应对之中,随机的抽出其中一对验证SuperPro加密算法。因为,校验数据很多,每次验证加密算法使用的“查询响应对”可能不同,“监听仿真”软件即使纪录了一部分“查询响应对”,但无法纪录全部“查询响应对”。软件每次运行时,都可能使用新的查询响应校验数据,“监听仿真”软件无法响应这些新的查询。因此,“监听仿真”也就失去了模拟、仿真SuperPro软件保护锁的作用。

  2)延时法:开发商可以事先使用开发工具生成大量的校验数据,即:“查询、响应”对,比如:200000 组“查询、响应”对,开发程序过程中,开发商设计定时查询、校验加密锁的机制。在程序运行过程中,每10分钟查询并校验加密锁一次,使用过的校验数据,4年内不再重复使用。即使监听软件24小时记录数据,也需要4年才能纪录完毕。4年后,软件早已过了“热卖期”了,使用监听软件的解密者也就失去了行动意义。

  3)分组、分时法:开发商可以在程序中把查询响应对分组,比如:1200 对校验数据可分为12组,每100对一组。程序在一年中的第一月使用第一组校验数据,第二月使用第二组校验数据,以此类推。监听软件就算记录了第一月的校验数据,第二个三个月以后校验数据没有纪录,在以后的时间段软件仍然无法正常使用,从而“监听仿真”失去意义。

  4)随机噪声数据法:开发商可以在程序中随机产生查询数据,随机数据和真实数据混合在一起,监听软件即使记录了查询数据,也会被其随机性所迷惑,同时也无法仿真另一个次软件运行产生的随机数,加密软件也就无法破解。

  注:本文部分内容来源于彩虹加密锁Sentinel SuperPro的使用说明文档以及相关技术文档整理而成。

2006年11月29日星期三

软件加密狗破解思路和方法

  本文介绍的是软件加密狗破解的一般思路和方法,大家可能奇怪,昨天刚刚介绍完“软件加密锁产品评测”,怎么今天就介绍加密狗破解知识?其实做为软件开发者,研究好软件加密的确很重要,不过也很有必要多了解一些关于加密狗解密和破解的知识,加密和破解就像矛和盾一样,对于解密知识了解的越多,那么编写的加密代码就越好,要知道加密永远都比解密要容易的多,只有知己知彼,方能百战百胜。

  硬件加密锁,俗程“加密狗”,对于加密狗的破解大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。

  硬件克隆复制主要是针对国产芯片的加密狗,因为国产加密狗公司一般没有核心加密芯片的制造能力,因此有些使用了市场上通用的芯片,破解者分析出芯片电路以及芯片里写的内容后,就可以立刻复制或克隆一个完全相同的加密狗。不过国外的加密狗就无法使用这种方法,国外加密狗硬件使用的是安全性很好的自己研制开发的芯片,通常很难进行复制,而且现在国内加密狗也在使用进口的智能卡芯片,因此这种硬件克隆的解密方法用处越来越少。

  对于Debug调试破解,由于软件的复杂度越来越高,编译器产生的代码也越来越多,通过反汇编等方法跟踪调式破解的复杂度已经变得越来越高,破解成本也越来越高,目前已经很少有人愿意花费大量精力进行如此复杂的破解,除非被破解的软件具有极高的价值。

  目前加密锁(加密狗)的解密破解工作主要集中在应用程序与加密动态库之间的通讯拦截。这种方法成本较低,也易于实现,对待以单片机等芯片为核心的加密锁(加密狗)具有不错的解密效果。

  由于加密锁(加密狗)的应用程序接口(API)基本上都是公开的,因此从网上可以很容易下载到加密狗的编程接口API、用户手册、和其它相关资料,还可以了解加密狗技术的最新进展。

加密锁

  例如,某个国内知名的美国加密狗提供商的一款很有名的加密狗,其全部编程资料就可以从网上获取到,经过对这些资料的分析,我们知道这个加密锁(加密狗)有64个内存单元,其中56个可以被用户使用,这些单元中的每一个都可以被用为三种类型之一:算法、数据值和计数器。

  数据值比较好理解,数据值是用户存储在可读写的单元中的数据,就和存储在硬盘里一样,用户可以使用Read函数读出存储单元里面的数据,也可以使用Write函数保存自己的信息到存储单元。

  计数器是这样一种单元,软件开发商在其软件中使用Decrement函数可以把其值减一,当计数器和某种活动的(active)算法关联时,计数器为零则会封闭(deactive)这个算法。

  算法单元较难理解一些,算法(algorithm)是这样一种技术,你用Query(queryData)函数访问它,其中queryData是查询值,上述函数有一个返回值,被加密的程序知道一组这样的查询值/返回值对,在需要加密的地方,用上述函数检查狗的存在和真伪。对于被指定为算法的单元,软件上是无法读和修改的,即使你是合法的用户也是如此,我理解这种技术除了增加程序复杂性以外,主要是为了对付使用模拟器技术的破解。

  此加密锁(加密狗)的所有API函数调用都会有返回值,返回值为0的时候表示成功。

  因此,破解思路就出来了,就是使用我们自己的工具(如VB、VC等)重新编写构造一个和加密狗API一样的DLL动态库文件,里面也包含Read、Write等全部API中包含的函数,使用的参量及返回值和原来的函数一样,所有函数返回零。然后对Query、Read函数进行处理,返回应用软件需要的数值即可。

  这个新的DLL文件编写成功后,直接替换掉原来的DLL文件,这时候再运行应用软件,软件访问加密狗的操作就全部会被拦截,拦截程序永远会返回正确的数据给软件,从而实现了模拟加密狗的运行。

  以上是目前破解软件加密狗(加密锁)的一些常见思路,对于这种破解,软件开发者还是有相应的一些对策的,下一回我将在《软件加密锁编程技巧》一文中具体介绍一下软件开发者将如何编写安全可靠的代码,使得这种类似的破解方法失效。

2006年11月28日星期二

国内软件加密锁产品评测

  昨天讲述的“软件加密技术和注册机制”是一些软件加密的基本概念,在中国,开发和销售软件离不开加密,因为我国的软件保护法制还不太健全,人们的法制观念也比较淡薄,盗版软件有着丰富的土壤,并且因为软件是一种非常特殊的商品,很容易复制,就其功能来讲,正版和盗版的区别很小,如果开发出来的软件不进行加密的话,那么在中国就无法销售出去,人们乐意使用盗版软件而没有一些道德罪孽感,因此软件开发商有必要使用一些加密产品来保护软件开发者的利益,防止软件被盗版。

  前文介绍的加密解决方案中,软件加密锁(俗称加密狗)是一种加密安全强度最好的加密产品,所谓加密锁,就是一个安装在计算机并口或USB口上的一种特殊硬件,应用软件通过和这个硬件的通讯来确保软件不被盗版。目前市场上流行的加密锁产品很多,有美国SafeNet的圣天诺加密锁系列、HASP、深思洛克等,下面,我就将对目前常见的硬件加密锁(加密狗)进行一些技术上的评测,供软件开发商们参考。

名称 圣天狗 Hasp HL Sentinel SuperPro
外观 圣天狗加密锁 Hasp HL加密锁 Sentinel SuperPro加密锁
供应商 美国SafeNet 以色列Aladdin 美国SafeNet
存储空间 8K 4K 112字节
加密算法 128位AES/ECC 128位AES/RSA DES
芯片 MCU芯片 独家芯片 ASIC
支持接口 USB,不支持并口 USB,不支持并口 USB和并口
稳定性 可以保存数据10年 数据保全:最小10年
存储读写: 最小1百万次
可以保存数据10年
写操作:100,000次
远程升级 支持 支持 支持
产地 美国 以色列 美国
参考价格 100-200元 100-200元 50-100元
自己宣称的特点和优势 圣天诺加密锁保持行业内最高的可靠性,硬件故障率低于万分之一。
圣天诺加密锁承诺非人为、非机械的硬件损坏, 2 年内免费更换。

并口产品独有 ASIC 芯片由 Rainbow 公司自主设计,保证硬件不可复制,拥有最高安全级。别
全新推出应用于 USB 加密锁上的 MCU 芯片技术,支持 3-DES 和 128 位 AES 加密算法,加密强度极高。

一只加密锁可以同时保护 28 个软件,对软件实行分模块的分发与控制。
以易用性为使命,圣天诺开发工具具有革命性的意义,使复杂的加密过程轻松完成
采用128位密匙的公共AES算法,具有超强的防盗版性能。

创新性融入了多层安全技术,抗调试和抗反向工程能力突出。

许可证采用数字更新,签名采用1024位的私有密钥RSA算法。

首创的应用程序封装技术,提供了: 防逆工程保护,代码混淆,防范动态调试和防调试器。

符合ISO 9001:2000认证的生产设备。

SafeNet 在 2004 年推出全新硬件的 SuperPro USB ,支持 SuperPro 7.0 的所有新增功能,更拥有 512 字节( 256 存储单元)的大容量以配合高级许可机制和高级安全应用, SuperPro USB 锁比 SuperPro 并口锁( 128 字节)多 384 字节,也就是多了 192 个存储单元。 提供更大存储空间的同时, SuperPro USB 的安全性也大大增强。它应用抗黑客技术,有效阻止对写锁密码的恶意攻击。

内置新一代 MCU 芯片,支持 USB2.0 标准 / 支持带电插拔,即插即用,通过微软 WHQL 认证,提供 128-512 字节掉电保持存储空间,提供 28-124 个独立的算法单元,提供上亿种算法选择 / 支持 3DES, AES 算法,支持分软件分模块销售模式 / 支持 AS 加密技术,内置计数器 / 内置唯一序列号,提供远程升级功能。
加密强度 圣天狗与应用程序的通讯,采用公钥加密及128-bit AES加密机制。中间层的入侵方式,如监听与仿真,驱动程序的替换等都被有效的遏止。每次应用程序和硬件锁间的通讯,都会使用一个独立的加密密钥,让黑客无法暴力破解。圣天狗包括了内部验证,可以有效地预防圣天狗被复制。 HASP HL通过仅允许当加密锁连入计算机才可以对被保护的软件进行访问读取和执行,来防止盗版和非法使用的。HASP HL集合了一个高度安全,无法渗透破解的编码引擎。运行时,被保护的软件发送一个经过编码的字符串给HASP HL, HASP HL对该字符串解码并产生一个无法仿造复制的返回值。如果从HASP HL返回的值正确, 则该应用程序可以运行。如果没有连入HASP HL或者返回值不正确,则该应用程序不能运行。 HASP HL使用国家标准技术局(NIST)制订的高级加密标准。 超强锁把复杂的软硬件技术结合在一起以防止非法发布和使用开发商软件。

当被圣天诺超强锁保护的软件运行时,程序向插在计算机上的超强锁发出查询命令。超强锁迅速计算查询并给出响应。正确的响应保证软件继续运行。如果超强锁被拔掉,程序将不能运行。
 

名称 深思洛克精锐IV 飞天诚信ROCKEY6
外观 深思洛克加密锁 飞天诚信加密锁
供应商 北京深思洛克 北京飞天诚信
存储空间 8K和32K 70K
加密算法 RSA/3DES RSA/3DES
芯片 菲利浦16位智能卡芯片 中兴通讯32位智能卡芯片
支持接口 USB,不支持并口 USB,不支持并口
稳定性 10万次擦写寿命 10万次擦写寿命
远程升级 支持 支持
产地 北京 北京
参考价格 50-100元 50-100元
自己宣称的特点和优势 芯片自锁功能——软件对芯片的访问首先由PIN码保护,PIN码的尝试次数可由软件开发商设定。当非法用户利用字典攻击的情况出现时,如果次数超过设定值以后,芯片会自我锁定,外界一切对芯片的操作均被停止。

硬件随机数发生器(白噪声技术)——用于产生高强度随机数。除对称算法生成密钥需要外,随机数在安全加密领域具有非常重要和广泛的应用,因此,硬件本身带有高强度随机数发生器对安全而言意义重大。

硬件时钟定时器——是软件计时使用、反跟踪等常用软件保护手段中必备的功能,精锐TMIV硬件中提供计时周期长达10小时的定时器,可以轻松实现上述要求。
采用中兴通讯的32位智能卡加密锁、内置C51虚拟机;自主知识产权的COS系统—FEITIAN COS;提供Keil 试用开发环境;全球唯一硬件ID与管理编码;丰富的虚拟机系统调用和开发接口,支持双精度浮点的多种数学运算;强大的文件系统管理,用户可定义多种数据类型和安全级别;方便、安全的远程升级和模块管理功能;内置计数器。

Rockey6Smart采用的是32位的智能卡芯片,浮点运算能力是目前最快的。能满足多数运算要求。

加密强度 精锐IV采用的是PHILIPS最先进的16位智能卡芯片,其达到了目前全球科技产品领域最高安全级别——EAL5+。深思洛克向用户承诺精锐系列采用的核心智能卡芯片完全能够对抗主要的芯片攻击手段,确保产品安全性。 ROCKEY6 SMART采用的中兴通讯的32位智能卡芯片,该款芯片已经通过国家密码局资质认证的,并为其编号SSX20,2005年7月,SSX20安全芯片获“中国电子信息产业集团公司科学技术进步二等奖”。

飞天的另一款产品ROCKEY4 SMART使用的是ST的进口芯片,该款芯片是通过了国际安全机构检测和认证(EAL 4+和IT SEC认证)。
 

  以上测评数据大多来源各个产品的相关介绍,我对这些数据做一些解读,以供大家参考。

  1、Sentinel SuperPro为比较老的产品,其存储空间最小,加密强度也小,其他产品为较新的产品。

  2、AES为目前公认的最强的单钥加密算法,以目前电脑运算速度,在地球灭亡之日也是无法解开128位的AES密钥。而DES为70年代的算法,超级计算机可以在数天内解开其密钥。

  3、ECC(椭圆曲线)是最新的双钥加密算法,通常认为其比70年代的RSA算法速度快,安全性高。

  4、硬件加密锁的安全性在于其芯片的安全,芯片是不可复制并且具有保密、自毁等功能,目前评测产品中除了飞天锁外所有核心芯片全部来自国外。其中深思洛克精锐IV和飞天ROCKEY 6 Smart使用的是智能卡芯片,其他为单片机芯片。

  5、美国政府基于国家安全的考虑,对中国出口的加密产品在密钥长度上进行了严格限制,例如早期出口至我国的软件产品(如IE等)采用的密钥长度为40位(40位的密钥业余玩家都可以在几天内破解),而通常认为128位的密钥才能满足军用安全的需要。中国军用企业被美国法律禁止购买美国的128位加密产品。

  6、飞天诚信的ROCKEY 6 Smart加密锁使用的是国产的深圳中兴通讯的智能卡芯片,这种加密锁的核心芯片没有进口,因此较适合政府或者军方使用。

  7、32位智能卡芯片的浮点运算速度快于16位的智能卡芯片,对于经常调用RSA等函数有很大好处。

2006年11月27日星期一

软件加密技术和注册机制

  本文是一篇软件加密技术的基础性文章,简要介绍了软件加密的一些基本常识和一些加密产品,适用于国内软件开发商或者个人共享软件开发者阅读参考。

  1、加密技术概述

  一个密码系统的安全性只在于密钥的保密性,而不在算法的保密性。

  对纯数据的加密的确是这样。对于你不愿意让他看到这些数据(数据的明文)的人,用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。

  但是,软件的加密不同于数据的加密,它只能是“隐藏”。不管你愿意不愿意让他(合法用户,或 Cracker)看见这些数据(软件的明文),软件最终总要在机器上运行,对机器,它就必须是明文。既然机器可以“看见”这些明文,那么 Cracker,通过一些技术,也可以看到这些明文。

  于是,从理论上,任何软件加密技术都可以破解。只是破解的难度不同而已。有的要让最高明的 Cracker 忙上几个月,有的可能不费吹灰之力,就被破解了。

  所以,反盗版的任务(技术上的反盗版,而非行政上的反盗版)就是增加 Cracker 的破解难度。让他们花费在破解软件上的成本,比他破解这个软件的获利还要高。这样 Cracker 的破解变得毫无意义——谁会花比正版软件更多的钱去买盗版软件?

  2、密码学简介

  2.1   概念

  (1) 发送者和接收者

  假设发送者想发送消息给接收者,且想安全地发送信息:她想确信偷听者不能阅读发送的消息。

  (2) 消息和加密

  消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的消息称为密文,而把密文转变为明文的过程称为解密。

  明文用M(消息)或P(明文)表示,它可能是比特流(文本文件、位图、数字化的语音流或数字化的视频图像)。至于涉及到计算机,P是简单的二进制数据。明文可被传送或存储,无论在哪种情况,M指待加密的消息。

  密文用C表示,它也是二进制数据,有时和M一样大,有时稍大(通过压缩和加密的结合,C有可能比P小些。然而,单单加密通常达不到这一点)。加密函数E作用于M得到密文C,用数学表示为:

  E(M)=C.

  相反地,解密函数D作用于C产生M

  D(C)=M.

  先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:

  D(E(M))=M

  (3) 鉴别、完整性和抗抵赖

  除了提供机密性外,密码学通常有其它的作用:.

  (a) 鉴别

  消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。

  (b) 完整性检验

  消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。

  (c) 抗抵赖

  发送者事后不可能虚假地否认他发送的消息。

  (4) 算法和密钥

  密码算法也叫密码,是用于加密和解密的数学函数。(通常情况下,有两个相关的函数:一个用作加密,另一个用作解密)

  如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不同的算法。如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。

  更糟的是,受限制的密码算法不可能进行质量控制或标准化。每个用户组织必须有他们自己的唯一算法。这样的组织不可能采用流行的硬件或软件产品。但窃听者却可以买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。

  尽管有这些主要缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者没有认识到或者不在乎他们系统中内在的问题。

  现代密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:

  EK(M)=C

  DK(C)=M.

  DK(EK(M))=M.

  有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:

  EK1(M)=C

  DK2(C)=M

  DK2 (EK1(M))=M

  所有这些算法的安全性都基于密钥的安全性;而不是基于算法的细节的安全性。这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。

  密码系统由算法、以及所有可能的明文、密文和密钥组成的。

  基于密钥的算法通常有两类:对称算法和公开密钥算法。下面将分别介绍:

  2.2   对称密码算法

  对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加/解密。只要通信需要保密,密钥就必须保密。

  对称算法的加密和解密表示为:

  EK(M)=C

  DK(C)=M

  对称算法可分为两类。一次只对明文中的单个比特(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组比特亚行运算,这些比特组称为分组,相应的算法称为分组算法或分组密码。现代计算机密码算法的典型分组长度为64比特——这个长度大到足以防止分析破译,但又小到足以方便使用(在计算机出现前,算法普遍地每次只对明文的一个字符运算,可认为是序列密码对字符序列的运算)。

  2.3   公开密码算法

  公开密钥算法(也叫非对称算法)是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。在这些系统中,加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥)。私人密钥有时也叫秘密密钥。为了避免与对称算法混淆,此处不用秘密密钥这个名字。

  用公开密钥K加密表示为

  EK(M)=C.

  虽然公开密钥和私人密钥是不同的,但用相应的私人密钥解密可表示为:

  DK(C)=M

  有时消息用私人密钥加密而用公开密钥解密,这用于数字签名(后面将详细介绍),尽管可能产生混淆,但这些运算可分别表示为:

  EK(M)=C

  DK(C)=M

  当前的公开密码算法的速度,比起对称密码算法,要慢的多,这使得公开密码算法在大数据量的加密中应用有限。

  2.4   单向散列函数

  单向散列函数 H(M) 作用于一个任意长度的消息 M,它返回一个固定长度的散列值 h,其中 h 的长度为 m .

  输入为任意长度且输出为固定长度的函数有很多种,但单向散列函数还有使其单向的其它特性:

  (1) 给定 M ,很容易计算 h ;

  (2) 给定 h ,根据 H(M) = h 计算 M 很难 ;

  (3) 给定 M ,要找到另一个消息 M‘ 并满足 H(M) = H(M’) 很难。

  在许多应用中,仅有单向性是不够的,还需要称之为“抗碰撞”的条件:

  要找出两个随机的消息 M 和 M‘,使 H(M) = H(M’) 满足很难。

  由于散列函数的这些特性,由于公开密码算法的计算速度往往很慢,所以,在一些密码协议中,它可以作为一个消息 M 的摘要,代替原始消息 M,让发送者为 H(M) 签名而不是对 M 签名 .

  如 SHA 散列算法用于数字签名协议 DSA中。

  2.5   数字签名

  提到数字签名就离不开公开密码系统和散列技术。

  有几种公钥算法能用作数字签名。在一些算法中,例如RSA,公钥或者私钥都可用作加密。用你的私钥加密文件,你就拥有安全的数字签名。在其它情况下,如DSA,算法便区分开来了??数字签名算法不能用于加密。这种思想首先由Diffie和Hellman提出 .

  基本协议是简单的 :

  (1) A 用她的私钥对文件加密,从而对文件签名。

  (2) A 将签名的文件传给B.

  (3) B用A的公钥解密文件,从而验证签名。

  这个协议中,只需要证明A的公钥的确是她的。如果B不能完成第(3)步,那么他知道签名是无效的。

  这个协议也满足以下特征:

  (1) 签名是可信的。当B用A的公钥验证信息时,他知道是由A签名的。

  (2) 签名是不可伪造的。只有A知道她的私钥。

  (3) 签名是不可重用的。签名是文件的函数,并且不可能转换成另外的文件。

  (4) 被签名的文件是不可改变的。如果文件有任何改变,文件就不可能用A的公钥验证。

  (5) 签名是不可抵赖的。B不用A的帮助就能验证A的签名。

  在实际应用中,因为公共密码算法的速度太慢,签名者往往是对消息的散列签名而不是对消息本身签名。这样做并不会降低签名的可信性。

  3    当前流行的一些软件保护技术

  3.1   序列号保护

  数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。

  看看在网络上大行其道的序列号加密的工作原理。当用户从网络上下载某个shareware——共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制,这种加密实现起来比较简单,不需要额外的成本,用户购买也非常方便,在互联网上的软件80%都是以这种方式来保护的。

  软件验证序列号的合法性过程,其实就是验证用户名和序列号之间的换算关系是否正确的过程。其验证最基本的有两种,一种是按用户输入的姓名来生成注册码,再同用户输入的注册码比较,公式表示如下:

  序列号 = F(用户名)

  但这种方法等于在用户软件中再现了软件公司生成注册码的过程,实际上是非常不安全的,不论其换算过程多么复杂,解密者只需把你的换算过程从程序中提取出来就可以编制一个通用的注册程序。

  另外一种是通过注册码来验证用户名的正确性,公式表示如下:

  用户名称 = F逆(序列号) (如ACDSEE)

  这其实是软件公司注册码计算过程的反算法,如果正向算法与反向算法不是对称算法的话,对于解密者来说,的确有些困难,但这种算法相当不好设计。

  于是有人考虑到以下的算法:

  F1(用户名称) = F2(序列号)

  F1、F2是两种完全不同的的算法,但用户名通过F1算法计算出的特征字等于序列号通过F2算法计算出的特征字,这种算法在设计上比较简单,保密性相对以上两种算法也要好的多。如果能够把F1、F2算法设计成不可逆算法的话,保密性相当的好;可一旦解密者找到其中之一的反算法的话,这种算法就不安全了。一元算法的设计看来再如何努力也很难有太大的突破,那么二元呢?

  特定值 = F(用户名,序列号)

  这个算法看上去相当不错,用户名称与序列号之间的关系不再那么清晰了,但同时也失去了用户名于序列号的一一对应关系,软件开发者必须自己维护用户名称与序列号之间的唯一性,但这似乎不是难以办到的事,建个数据库就可以了。当然也可以把用户名称和序列号分为几个部分来构造多元的算法。

  特定值 = F(用户名1,用户名2,...序列号1,序列号2...)

  现有的序列号加密算法大多是软件开发者自行设计的,大部分相当简单。而且有些算法作者虽然下了很大的功夫,效果却往往得不到它所希望的结果。

  3.2   时间限制

  有些程序的试用版每次运行都有时间限制,例如运行10分钟或20分钟就停止工作,必须重新运行该程序才能正常工作。这些程序里面自然有个定时器来统计程序运行的时间。

  这种方法使用的较少。

  3.3   Key File 保护

  Key File(注册文件)是一种利用文件来注册软件的保护方式。Key File一般是一个小文件,可以是纯文本文件,也可以是包含不可显示字符的二进制文件,其内容是一些加密过或未加密的数据,其中可能有用户名、注册码等信息。文件格式则由软件作者自己定义。试用版软件没有注册文件,当用户向作者付费注册之后,会收到作者寄来的注册文件,其中可能包含用户的个人信息。用户只要将该文件放入指定的目录,就可以让软件成为正式版。该文件一般是放在软件的安装目录中或系统目录下。软件每次启动时,从该文件中读取数据,然后利用某种算法进行处理,根据处理的结果判断是否为正确的注册文件,如果正确则以注册版模式来运行。

  这种保护方法使用也不多。

  3.4   CD-check

  即光盘保护技术。程序在启动时判断光驱中的光盘上是否存在特定的文件,如果不存在则认为用户没有正版光盘,拒绝运行。在程序运行的过程当中一般不再检查光盘的存在与否。Windows下的具体实现一般是这样的:先用GetLogicalDriveStrings( )或GetLogicalDrives( )得到系统中安装的所有驱动器的列表,然后再用GetDriveType( )检查每一个驱动器,如果是光驱则用CreateFileA( )或FindFirstFileA( )等函数检查特定的文件存在与否,并可能进一步地检查文件的属性、大小、内容等。

  3.5   软件狗

  软件狗是一种智能型加密工具。它是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。当被狗保护的软件运行时,程序向插在计算机上的软件狗发出查询命令,软件狗迅速计算查询并给出响应,正确的响应保证软件继续运行。如果没有软件狗,程序将不能运行,复杂的软硬件技术结合在一起防止软件盗版。真正有商业价值得软件一般都用软件狗来保护。

  平时常见的狗主要有“洋狗”(国外狗)和“土狗”(国产狗)。这里“洋狗”主要指美国的彩虹和以色列的HASP,“土狗”主要有金天地(现在与美国彩虹合资,叫“彩虹天地”)、深思、尖石。总的说来,“洋狗”在软件接口、加壳、反跟踪等“软”方面没有“土狗”好,但在硬件上破解难度非常大;而“土狗”在软的方面做的很好,但在硬件上不如“洋狗”,稍有单片机功力的人,都可以复制。

  3.6   软盘加密

  通过在软盘上格式化一些非标准磁道,在这些磁道上写入一些数据,如软件的解密密钥等等。这种软盘成为“钥匙盘”。软件运行时用户将软盘插入,软件读取这些磁道中的数据,判断是否合法的“钥匙盘”。

  软盘加密还有其它一些技术,如弱位加密等等。

  随着近年来软盘的没落,这种方法基本上退出了历史舞台。

  3.7   将软件与机器硬件信息结合

  用户得到(买到或从网上下载)软件后,安装时软件从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列号等等),然后把这些信息和用户的序列号、用户名等进行计算,从而在一定程度上将软件和硬件部分绑定。用户需要把这一序列号用Email、电话或邮寄等方法寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。软件加密虽然加密强度比硬件方法较弱,但它具有非常廉价的成本、方便的使用方法等优点。非常适合做为采用光盘(CDROM)等方式发授软件的加密方案。

  此种加密算法的优点

  ·    不同机器注册码不同。用户获得一个密码只能在一台机器上注册使用软件。不同于目前大多软件采用的注册方法,即只要知道注册码,可在任何机器上安装注册。

  ·    不需要任何硬件或软盘

  ·    可以选择控制软件运行在什么机器、运行多长时间或次数等

  ·    可让软件在不注册前的功能为演示软件,只能运行一段时间或部分功能。注册后就立即变为正式软件

  ·    采用特别技术,解密者很难找到产生注册号码的规律

  ·    在使用注册号产生软件(注册机)时可采用使用密码、密钥盘、总次数限制等方法

  ·    方便易用,价格低廉。

  这种加密还有以下特点

  1、 注册加密的软件,只能在一台机器上安装使用。把软件拷贝到其它机器上不能运行。

  2、 若用户想在另一机器上安装运行,必须把软件在这一机器上运行时的序列号,寄给软件出版商换取注册密码。当然应再交一份软件费用。

  3、 此加密方法特别适应在因特网上发布的软件及用光盘发布的软件。

  注释:

  1、“加密技术概述”部分内容参考了大学教材“密码学基础”。

  2、“当前流行的一些软件保护技术”部分内容参考了“加密与解密--软件保护技术及完全解决方案”一文。

2006年11月26日星期日

真三国无双系列游戏片头

  真三国无双系列是PS2上很少见的3D动作游戏,日本的光荣(KOEI)在2002年发布,其二代、三代、四代的销量均突破了百万套。可以说,真三国无双系列游戏是PS2游戏机上必玩的ACT经典大作。

  我对于真三国无双二代、三代、四代全部都玩通关过,因为想要收集全集,最近还买到了一代来体验一下,不过玩后的感觉是,一代和二代的差距还是非常大的。

真三国无双

  从真三国无双三代开始,我发现这个游戏的片头动画变得很精彩,非常值得品味,相信美工在上面花了不少的精力,几乎每一代的片头都给玩家一些惊喜,令整个游戏生色不少。

  三代的片头描述的是著名的赤壁大战,不到一分钟的片头足以让玩家全然融入赤壁大战那硝烟滚滚、杀声震天、刀光剑影、鼓角嘹亮的历史画卷,那磅礴的气势可谓经典。

  四代的片头算的上是历代无双系列作品中片头动画中最令人热血沸腾的一部,场景大概是著名的长板坡,赵云被刻画成一个骁勇善战和独闯曹营的虎胆英雄,面对曹操的百万雄兵,毫无惧色,以一当千,豪情万丈地杀入千军万马之间,这是何等的气魄啊。相信每个看完这个片头的玩家,玩游戏选人物时都会第一个选赵云。

  真三国无双BB是一个基于PC的网络游戏,在这个游戏中,玩家将不再扮演真实的武将,而是扮演武将的部下而参与战斗,从一个不知名的角色慢慢成长,在三国的历史长河中纵横,角色的命运由玩家自己作主。这种模式和真三国无双4猛将传的“立志模式”有点类似,玩起来也别有一番味道。

  真三国无双BB的片头也是这样的情节,描写了三个家破人亡而参军的青年,加入了著名的虎牢关的战役,并与“天下无敌”的英雄吕布一比高低,充满了个人色彩,让人感觉这是一个描写人而不是描写神的游戏,颇让人感慨万千。值得一提的是,这个片头第一次使用了中文配音,可以看得出日本光荣公司对于中国用户的关注和期望。

真三国无双

2006年11月25日星期六

提高浏览体验的五十个最佳FireFox扩展插件

  FireFox的扩展插件有成百上千,你要用哪个呢?这里收集了50个流行的扩展插件,下载后安装,会让你的FireFox浏览更轻松。请注意,大多数扩展插件可以在FireFox2.0上使用,如果无法使用,那么使用Nightly Tester Tools扩展来让他们工作。当一个新的FireFox版本发布后,这个扩展插件可以允许你轻松更新这些已经存在的扩展。

  标签页管理

  All-in-One Gestures - 多合一鼠标手势,集合了流行的滚动、导航等方位插件的鼠标手势。

  Tabbrowser Preferences - 增强式标签页浏览扩展,提供一个很全面的图形界面,以便让用户能够轻松更改Firefox中的隐藏设置,让Firefox的标签页浏览功能更加强大和完善,并提供关于链接打开方式的详细设置。

  Tab Mix Plus - 在页签上增加了更多的功能,允许你在一个页签上打开多个链接,或者在多个页签打开同一个链接,合并或者关闭同一个域名的链接等。

  Restart Firefox - 在文件菜单中加了一项“重启firefox”,在安装扩展或插件后,使用这个插件可以很方便,不用关闭FireFox。

  Sessionsaver - 恢复上一次打开的页面,如果你上次用过FireFox的话,这对于崩溃的FireFox同样有效。
 

   Duplicate Tab - 允许你在新窗口或当前窗口复制相同的页签(包括浏览历史等)。

  Colorful Tabs - 可以让打开的标签变成彩色的,使得界面美化。

  Viamatic foXpose - 在状态栏上增加一个图标,点一下就可以打开所有的页签。

  Firefox Showcase - 简化定位和选择当前窗口的操作。

  Separe - 帮助整理当前页签。

  Permatabs - 使得一个被选定的页签不能被关闭,并且永远驻留在内存。

  FaviconizeTab - 调整页签的宽度,并且只显示图标。

  网页链接管理

  Linky - 下载选中内容中的所有的网页、图像、文件链接等等。

  WebMailCompose - 让网页上的发邮件链接自动转移到web邮件的发送邮件地址。

  Linkification - 使得FireFox可以在查看纯文本的时候识别链接地址并打开链接。

  IE Tab - 使用IE内核访问网页。对于只支持IE的页面特别有用。

  FirefoxView - 在IE中使用FireFox打开当前的页面。

  Paste and Go - 让你粘贴URL到地址栏后自动打开页面,或者使用快捷键Ctrl-Shift-V。

  ErrorZilla - 修改默认的404错误页面为一个Google的缓存页面。

  文件下载管理

  FlashGot - 多线程下载工具。

  PDF Download - 提供浏览者对PDF更多的操控方式,当你点击一个PDF链接时Firefox会弹出一个对话框供你进行选择性操作:下载、在标签页打开、在新标签页中以HTML方式查看、取消。

  ScrapBook - 方便的保存与管理网页。

  DownThemAll - 只需一点即可下载网页中的所有连接。

  TargetAlert TargetAlert - 可以帮你扫描网页中的所有超链接,在符合特定文件类型的超链接后面,加上一个特定的图标,让你可以不用去看网址就可以知道这是什么类型的文件。

  Download Manager Tweak - 修改FireFox默认的下载管理器,使其可以在书签列(侧边列)或标签页中开启下载管理窗口。

  Download Statusbar - 让你可以从状态列看出目前下载文件的进度。

  Disable Targets For Downloads - 在点击链接下载文件时,防止打开新窗口。

  FireFTP - 在FireFox中实现的一个完全免费的、安全的、跨平台的FTP客户端功能。

  浏览网页管理

  GreaseMonkey - 可以安装用户自己编写的脚本,实现自定义的功能,功能强大。

  Image Zoom - 通过右键与滚轮配合使用,放大缩小图片。

  Fasterfox - 加速FireFox的启动和运行,网络性能调节与优化。

  SpellBound - 对于当前的填写的表单进行英文拼写检查。

  BugMeNot - 绕过网站设置的登录限制,直接进入浏览网页,可以免去烦琐的注册网站的过程。

  AutoCopy - 在页面上选择任何内容都会自动将其复制到剪贴板中,按中间的鼠标粘贴。

  Copy Plain Text - 无格式复制当前文本内容,将当前页面的所有字体等格式删除后复制。

  Google Images Re-Linker - 绕过Google图片搜索的框架预览页面,直接浏览里面的略缩图的大图。

  Stop-or-Reload Button - 将刷新和停止整合为一个按钮。

  Extended Statusbar - 像Opera的状态栏那样的东西,一个显示速度、进度百分比、时间和载入字节数的状态条。

  Resizeable Textarea - 可以让你调节表单文字录入框的大小,不用再不停的拖滚动条了。

  Adblock Plus - Adblock plus是Adblock的加强版。可以阻挡特定网址及网页上的广告对象(例如图片、Flash)。

  Flashblock - 阻挡所有Flash。

  Sage - 一个轻量级的RSS阅读器,在侧边栏提供一个窗口阅读RSS。

  Cacheout - 让你通过Google的缓存或者代理来访问某个页面。

  Pearl Crescent Page Saver - 截屏程序,可以将整个页面保存为一个图片。

  Reload Every - 自动去刷新某个页面。

  Copy URL+  - 能让使用者在复制网页上面选取的文字时,也同时复制网页的网址与标题。

  InFormEnter - 以半自动模式填写表单的助手。这个扩展在一个网页表单的每个输入栏加入一个能够点击的小图标,你能从这里选择条目插入——不需要键入。你能通过菜单设定,使它显示你经常用到的信息,例如名字、email、地址等等。

  All-in-One Sidebar - 在侧边栏中就可以快速切换书签、下载项和扩展等面板,或者在侧边栏登陆网站、查看源代码;另外,还有侧栏切换柄和工具栏,单击浏览器一侧的突起边缘,即可打开/关闭扩展,所有这些都允许用户自由定制

  Text size toolbar - 添加一个按钮,可以增加或者减小字体,也可以回复到默认字体。

  Reveal - 让你可以在历史记录里看到页面的缩略图,以便快速找到你需要的网页。

  Mystickies - 让你可以在Web上放一个便条纸,并使用Tag标记。

  Clear Cache Button - 在工具栏中添加一个清除缓存的按钮,单击一次即可清除历史记录。

  gTranslate - 在页面上右击即可使用Google来翻译当前网页的内容。

  Xinha Here! - 一个所见即所得的文本编辑器。

  Yoono - 即时显示建议的网址,并分享大家共同感兴趣的网址。

  BlueOrganizer - 帮你定制你的个性化信息,帮助你节省时间找到相关的信息。

  隐私与安全管理

  SwitchProxy - 让你在多个代理服务器上快速切换。

  NoScript - 只允许受信任的网站启用JavaScript、Java 或其他插件。白名单基于优先阻止机制,在不损失任何功能的情况下,阻止利用已知或未知安全漏洞的攻击。

  Always Remember Password - 让一些网站永远记住你的密码,不用再重新输入。用于对付一些总让你输密码的网站,如银行等。

  CookieCuller - 增强版本的Cookie管理器。

  Stealther - 使用浏览网页不留下任何痕迹。

  网页搜索管理

  Google Toolbar for Firefox - Google工具栏软件,可以实现多种实用的功能。

  CustomizeGoogle - 增强的Google搜索结果,添加很多附加信息,同时删除一些没用的信息(比如Google的广告等,个人觉得这样似乎不太好)。

  NextPlease - 为浏览器添加前进后退按钮,或者说是翻页按钮。

  BetterSearch - 增强Google, MSN Search, Yahoo Search, A9, Answers.com, AllTheWeb, Dogpile.com, del.icio.us and Simpy.com bookmarks等的搜索结果。

  Answers - 按住Alt键后点任何一个单词,可以得到一个快速的相关定义或者解释说明。

  音乐、视频管理

  FoxyTunes - 边上网边听歌。不用离开浏览器就可以控制你喜欢的媒体播放器。

  MediaPlayerConnectivity - 使您轻轻一按就可用外部媒体播放程序播放网页内嵌视频。

  电子邮件管理

  Gmail Manager - 用来同时管理多个GMail账号,即时显示各账号中的新邮件统计。

  Gmail Notifier - 自动检查GMail里的邮件。

  AJAX Yahoo Mail - 为Yahoo Mail加入Ajax功能,可以只用按一下,就查看邮件。

  书签管理

  Bookmark with Del.icio.us - 在FireFox中集成del.icio.us,轻松发布自己的书签而不用离开当前页面。

  Foxmarks Bookmark Synchronizer - 安装这个插件后,其会在后台自动同步当前的书签。

   StumbleUpon - 是一个让你更方便的浏览优秀网站的FireFox插件。

  Reliby - 提供一个刷新所有即时书签的功能。

  Clipmarks - 让你保存并分享页面内容而不用进入整个页面。

  其它流行服务管理

  Adsense Notifier - 在状态栏显示Adsense的收入。

  Forecastfox - 在状态栏显示天气预报。

  StockTicker - 显示你喜欢的股票状态。

  DictionarySearch - 在线词典查找单词。

  Web Developer - 网站开发者使用的工具,有很多优秀的功能。

  Performancing for Firefox - 一个Blog编辑器,让你可以轻松的在Wordpress、MovableType或者Blogger中发布文章。

  Map+ - 让你能快速查看地图中选择的地址而不用改变窗口。

  ChatZilla - 一个干净易用的IRC聊天客户端软件。

Firefox

  以上就是我所推荐的五十个优秀的FireFox扩展插件,并不是说你需要完全赞同我选择的这些扩展插件,这只是一个发现最优秀FireFox扩展插件的一个尝试,这篇文章会不断更新,如果你发现了什么更好的FireFox扩展插件,请留言告诉我。

  英文原文地址:50 Best Firefox Extensions for Power Surfing  

  中文翻译:William Long

2006年11月24日星期五

使用Axis开发Web Service程序

  今天是感恩节,差点又要在公司加班了。好在Web Service程序并不是特别难搞,下午终于在eclipse下调通过了,正确产生了服务器端和客户端的Java代码,apache的东西的确很不错。

  说道Web Service的程序开发,八个月前我加班调试公司和中国电信的商务领航系统的接口的时候,用的就是Web Service,Web Service有很多优点,使用Web Service可以在不同编程语言间实现数据交换,而我那时对Web Service也不熟,就由同事帮我生成了一大堆Web Service的框架代码,我则只单独开发业务代码。

  这次的另外一个项目也要用Web Service了,不过人手也少了,没有人帮做Web Service了,只好自己动手。

  好在开发前,有个同事先给我们不熟悉Web Service的程序员进行了一些培训,我才知道原来以前的Web Service都是可以自动生成代码的,而且也不难,试了一个下午客户端和服务器端的Web Service代码就都调试通过了,真不错。

  为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。

  一、Axis环境的安装

  1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。

  2、到 http://xml.apache.org 网站下载Axis安装包。

  3、将Axis相关包文件放在WEB-INFlib目录下。

  4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。

  Axis支持三种web service的部署和开发,分别为:

  1、Dynamic Invocation Interface (DII)

  2、Dynamic Proxy方式

  3、Stubs方式

  前两种方式我就不介绍了,同事告诉我他们自己都不使用前两种方式,他们建议我们使用Stubs方式,因此我就主要就介绍一下第三种方式。注意,我自己的Java源代码是放在D:workspace est目录下,Axis相关包文件放在D:workspace estWEB-INF目录下。

  二、编写wsdd发布web服务,编写stub client访问web服务

  1、编写服务端程序server,SayHello.java,编译server.SayHello.java

package server;
public class SayHello
{
    public String getName(String name)
    {
        return "hello "+name;
    }
}

  2、编写wsdd文件

  deploy.wsdd文件内容如下:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <service name="SayHello" provider="java:RPC">
  <parameter name="className" value="server.SayHello.getName"/>
  <parameter name="allowedMethods" value="*"/>
 </service>
</deployment>

  3、发布服务:

  编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下:

set Axis_Lib=D:workspace estWEB-INFlib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/test/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd

  执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/test/services 就会显示服务列表。

  4、生成客户端client stub文件

  在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。

  编写一个WSDL2Java.bat文件,其内容如下:

set Axis_Lib=D:workspace estWEB-INFlib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:workspace estsrc
set Package=server.SayHello
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl

  执行这个批处理文件就可以生成client stub.

  生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .

  5、编写客户端程序,编译并执行

  下面是一段junit测试客户端代码。

import java.net.URL;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class TestWSClient extends TestCase {

    public TestWSClient(String string) {
        super(string);
    }

    public void SayHelloClient() throws Exception {

        SayHelloService service = new SayHelloServiceLocator();
        SayHello_PortType client = service.getSayHello() ;
        String retValue = client.getName("clientname");
        System.out.println(retValue);

    }

    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTest(new TestWSClient("SayHelloClient"));
        return suite;
    }
}

  至此,整个服务器端和客户端的Web Service框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,Web Service并不难开发吧。

2006年11月23日星期四

百度搜藏即将发布

  百度即将发布一个全新的中文网摘服务:百度搜藏,名字感觉比较怪。现在百度搜藏的主页已经能访问,上面写的是“即将发布,敬请关注”,据说这个服务将在本月底之前开发完成并上线。

  百度在百度搜藏主页上介绍了这个产品的一些特点,比如:

  全文收藏:不仅能收藏网址,更能自动收藏全文

  快速查找:在您收藏的海量信息中,快速、准确地找到所需资料

  网页快照:不必担心网页链接失效,您可以通过“快照”快速浏览页面内容

  轻松便捷:只需连接互联网,就能随时随地收藏和使用

  分享资源:和朋友分享自己喜欢的网址,或享用他人的收藏

  这些功能看起来没有什么特色,大部分中文的网摘系统都有类似的功能,而且我觉得其网页快照功能可能会产生版权上的纠纷,搞不好会给目标网站带来不良的影响。

  对于网摘服务,我也用了很多,感觉用的最顺手的就是del.icio.us的服务,网摘需要有的功能其全都有,也没有广告,虽然在使用的过程中,我发现del.icio.us的用户显示页面对中文用户不是特别友好,交互性也不强,最主要的是没有中文界面和域名难记,这些问题会影响其中文用户的普及。

  del.icio.us的这些缺点也是可以解决的,比如我通过程序在del.icio.us的基础上增加了一个WordPress的新界面的blog,这个新界面对用户访问是非常友好的,新地址和原有的del.icio.us内容还会实时同步更新,这都多亏了del.icio.us强大的API支持。

  del.icio.us最大的优点也正在这里,她给用户创造了价值,用户反过来又会给del.icio.us带来价值,大家各取所需,一个品牌价值自然也就起来了。

  百度搜藏地址:http://cang.baidu.com/

2006年11月22日星期三

BlogSpot模版资源列表

  首先是关于Google Blogger的一则快讯,我站一位杨读者首先发现,今天下午17点的时候,BlogSpot又可以正常访问了,我于是立刻尝试了一下,证实深圳电信和上海电信都可以正常访问BlogSpot,这对于大多数人来说都是一个好消息。

  Google Blogger在中国可谓多灾多难,今天八月份解封后在国内引起很大反响,BlogSpot的中文用户数猛增,对于这样一个功能强大而且速度飞快的免费Blog空间,获得中国用户的青睐也是理所当然的。然而可惜的是,今年十月份BlogSpot再次无法访问,不过今天BlogSpot忽然又访问正常,不得不令人慨叹世事多变啊。

  既然BlogSpot已经可以访问了,我这里就收集一些BlogSpot的模版,来源于the ultimate blog template list,大家可以继续倒腾自己的BlogSpot了。

2006年11月21日星期二

FireFox导入导出Cookies和收藏夹的方法

  FireFox是一个常用的浏览器,扩展插件众多,和IE相比有很多优点,不过有些细小的地方似乎考虑的不太好,比如用户经常会碰到系统重新安装等问题,这就需要导入导出FireFox浏览器的Cookies和收藏夹,然而遗憾的是,FireFox默认只提供了导入IE的Cookies和收藏夹的功能,经过一些尝试,我这里找到一个手动导入导出FireFox的Cookies和收藏夹的方法。

  首先,打开“我的电脑”,点“工具”-“文件夹选项”-“查看”,选中“显示所有文件和文件夹”,然后打开文件夹C:Documents and Settings你的用户名Application DataMozillaFirefoxProfiles随机目录,注意最后一个文件夹是一个随机目录。进入这个目录后,找到cookies.txt和bookmarks.html两个文件,这两个文件就是Cookies和收藏夹文件,复制出这两个文件到另外一台机器上的类似目录下,覆盖同名文件,就完成了FireFox的Cookies和收藏夹的导出和导入。

  另外,FireFox的收藏夹(书签)也可以通过菜单选项直接导出,具体方法是:打开Firefox,点击“书签 -> 书签管理”启动书签管理器,点击“文件 -> 导出”来备份现有的书签。在另一台机器上,再用书签的“导入”功能把备份的书签导入到新的Firefox的配置中即可。

  最后一个方法是使用FireFox插件。如果你感觉自己信任Google的话,可以安装一下Google开发的Google Browser Sync(Google浏览器同步)插件,可以将你FireFox各种设置比如书签、历史记录、保存的密码及cookies保存进你自己的Google帐号里,在另外一台机器上可以使用Google帐号登录同步浏览器的内容。当然,请不要在网吧等不安全的地方使用这个插件,否则会带来很大的安全问题。

  安装这个插件,请使用FireFox进入下面的链接后就可以开始安装:http://tools.google.com/firefox/browsersync/install.html

2006年11月19日星期日

Yahoo卫星地图服务发布

  继Google的地图服务Google Maps和微软的地图MSN Maps之后,Yahoo周三宣布新推出了正式版本的包含卫星图像的Yahoo Maps。雅虎宣称,与竞争对手相比,他们的这项服务现在提供了“最好的全球地图数据媒体解决方案”。

  Yahoo Maps的表现形式用Macromedia的Flash来实现,而表现层的产生则使用了Macromedia Flex。Yahoo Maps也提供API开发接口供程序员使用。

  相比来说,Google提供卫星地图服务是最早的,其卫星地图的确非常不错,但是对于中国来说,其普通的交通地图是个空白实在令人遗憾。微软后来也提供卫星地图服务,其卫星地图对于中国的分辨率非常差,但是对于美国却有极高清晰度的鸟瞰图(如下图所示),鸟瞰图的清晰度令人震惊。

微软卫星地图

自由女神像鸟瞰图,清晰地令人震惊

  虽然微软对于中国的卫星地图不怎么,清晰度非常低,不过对于中国的交通地图还是可圈可点的。以北京为例(参见下面的截图),我们发现北京周边地区的详细地名都用拼音标记出来,这一点比Google做的好多了。

微软地图服务

微软的交通地图,标注甚为详细

  Yahoo Maps的表现又是如何呢?同样是北京的交通地图,Yahoo显示的是下面的界面,只有很少几个标注,由下图可以看出,Yahoo在中国地理上下的功夫比微软小的多。

YAHOO地图服务

Yahoo的交通地图,标注很少

  不过值得注意的是,Yahoo Maps的卫星地图对于中国网民来说是一个惊喜,因为Yahoo Maps的中国卫星地图也提供高清晰度的地图,粗略的看了一下,基本上中国的大城市都有高清晰地图,不过覆盖的城市范围似乎比Google Maps要少。

  下面是北京天安门的放大到最大的卫星地图,我很惊讶其卫星图片质量,感觉清晰度不亚于Google,这样的清晰度其实还可以继续放大的,不知道Yahoo为什么不让图片再放大一些。

北京天安门地图

  下面是深圳荔枝公园附近地区的卫星图片。

深圳地图

  重庆的网民可能又要失望了,因为和Google Maps一样,Yahoo Maps同样对于重庆地区的卫星图片也不是高清晰的,但是对于成都却是高清晰的,成都的卫星图片如下图所示。

成都地图

  喜欢玩Google Maps的,推荐也玩一下Yahoo Maps,看看Yahoo提供的这个地图服务能否有一些新的发现和惊喜。

2006年11月18日星期六

锵锵三人行谈论百度贴吧

  昨天晚上浏览Blog,看到百度官方博客时候,发现一则电视预告消息,说晚上凤凰卫视的《锵锵三人行》会一起聊一下百度的贴吧。

  这可真有点意思,一看时间,正好十一点半,我这个很少看电视的人也产生了兴趣,于是打开电视,转到凤凰卫视,发现果然是窦文涛和百度的梁冬在聊天。

  聊天似乎没有什么主题,比较杂乱,从一个内容一下就跳到另一个内容,从百度贴吧,谈到网络暴民,其中还说到了“孟广美事件”,我早就预计窦文涛会在节目中为孟广美辩护,今天终于看到窦文涛为自己的同僚辩解了,不过到现在才做似乎晚了点吧,大概窦文涛也害怕引火烧身,唠唠叨叨说了一堆,拐弯抹角地解释半天,我听着都费劲。其实有些事情并不是什么原则性的错误,孟广美说的话有些不合适,说明她本身不成熟,道一下歉,事情总会过去,中国的网络暴民大多都是年轻学生,和他们纠缠只会浪费自己的宝贵时间。

  然后他们聊百度贴吧,以及一些特色贴吧。关于百度的城市贴吧,的确有一些有意思的内容,百度贴吧实际就是利用百度流量营造的一个巨大的论坛社区,人们可以在里面谈论一定限度的话题,对于一些中小城市来说,当地官员未必有足够的行政级别要求百度去删除任何他们不喜欢的文章,无法删除文章的时候,官员的心态也会发生了一些变化,有些会重视并解决一些贴吧上提出的问题,这也有一定的积极意义。当然,百度贴吧并不是所有话题都可以讲的,有一些话题就未必受欢迎,比如百度没有鸡吧

  总体来讲,这个聊天节目还是蛮不错的,梁冬在百度呆了这么长时间,对网络认识也比窦文涛强多了(看看他这篇文章:百度为甚么不干掉那些负面新闻?),窦文涛也应该好好补习一下自己的网络知识了。

  百度在凤凰卫视上做谈话节目,显然是为了扩大自己在电视用户中的影响力,毕竟电视是目前中国最大的传播媒体,喜欢看电视的人远远多于喜欢上网的人,让那些不上网的人也了解自己的产品,会增加不少潜在的用户,因此,网络公司上电视作秀的确是一个扩大影响力的好办法。

  没有看到这个节目的,可以在下周一中午12点在凤凰卫视看重播,在凤凰卫视的网站上稍后也会有音频版本的节目放上去。

2006年11月17日星期五

防火长城真是神仙啊

  今天发现几天前刚刚能够正常访问的维基百科又无法访问了,才知道,原来防火长城真是神仙啊。

  为什么说它是神仙呢?因为它是不可预知而神秘莫测的,其通天法术带给人们无边的恐惧。神仙的意智和思维方式是捉摸不透的,真是因为这些琢磨不透、难以预知的神秘力量,我们才会感到自身的命运无法受自己掌控,我们卑微、可怜,我们无法预知、更无法改变主宰我们的力量,我们只能祈求它的善意与怜悯。这就是我们的命运。

  人是无法和神对抗的,神仙是强大的,同时也是令人百思不得其解的。孔子说,“敬鬼神而远之”,鬼神不可以不敬,但是敬而远之。神之所以受人尊敬,不是因为它的完美,而是因为它的神秘。

  既然神仙是这么强大而神秘,那么我们再来揣测神仙的行为就显得不明智了。在目前这样一个时代里,多说无异,敬而远之吧。

  不知道要到什么时候,神仙才能够变成人。

2006年11月16日星期四

再论SaaS的的实施风险

  昨天我讨论的《SaaS的前途和命运》的文章,icemanpro有一些不同看法,他认为SaaS会成功,所以今天我就再详细论证一下SaaS(Software-as-a-Service,软件即服务)的实施风险问题。

  第一点,关于软件托管服务的信用度问题,直接关系到托管服务商自身的能力和投入,比如实施一个ERP系统的在线托管,服务商需要保证99.9%以上的连通率,以软件开发为长处的软件开发商不得不进入网络和服务器维护这个领域,投入巨大的资金购买服务器和带宽,恶意的竞争对手还可能使用DDOS来攻击托管服务,因此还需要投入资金购买高效的硬件防火墙,本来应该是客户自己购买的各种成本全部转嫁给了软件开发商,这样,一个软件开发商又要搞软件开发,又要搞网络维护,各项成本明显地直线上升,像SAP这样的国外大型软件服务商当然有能力这么做,但是国内的软件开发商也这么做,无疑会重蹈ASP失败的后尘。

  核心观点:软件开发商应该将主要经历放在软件功能的完善和开发上,对于在线托管服务的涉及需要投入不少资金和人力资源,需量力而行。

  第二点,对于软件功能的差异,我知道目前B/S技术的确有所发展,小型的ActiveX可以完成一些小功能,对于大型ERP中流行的开发技术EJB,也可以通过Java客户端应用程序实现WEB界面上的GUI界面,通过浏览器自动下载Java客户端包后,实现和传统GUI一样的用户界面,并且开发量很小。这种胖客户端的方式,显然只能用于部署在局域网范围,在Internet上,部署这样的应用,用户可能很难接受,使用前下载庞大的Java客户端包显然不是一个友好的Web访问方式。而要开发符合Internet特点的Web应用,目前的技术还不成熟,要做成和GUI客户端类似的界面,需要庞大的开发工作量,显然,软件开发商在投入这种开发之前,需要考虑一下这么做是否值得。即使开发好了,客户是否会接受。

  核心观点:软件开发商应该考虑开发成本,将主要的精力和开发力量放在客户可接受的方案上。贸然创新,有一定风险。

  因此,对于目前的SaaS(Software-as-a-Service,软件即服务),我觉得其前景和以前的ASP一样,对于传统软件开发商来说是一个风险和挑战,没有实力的软件开发商最好不要贸然进入这一领域。

2006年11月15日星期三

SaaS的前途和命运

  SaaS(Software-as-a-Service,软件即服务)是目前一种新型软件服务形式,是从ASP(Application Service Provider,应用服务提供商)模式演变而来。

  根据我的理解,从本质上来讲,SaaS就是ASP,两者区别很小,都是以网络托管服务为基础的,而我恰好也经历过90年代末的ASP浪潮,因此我就谈论一下我对SaaS和ASP的一些看法。

  众所周知,中国的ASP模式在二十一世纪初以彻底失败而终结,大部分尝试过这个模式的软件开发商都为此交了不菲的“学费”,ASP模式失败的原因是什么,目前业界热炒的SaaS是否已经解决了这些问题,我觉得有必要进行一些探讨。

  一、软件托管服务的信用度

  用户是否信任软件托管服务,是一个首要问题,软件托管服务最热门的当属企业管理软件,对于实施了ERP、SCM(供应链)、HR(人力资源)、CRM(客户关系管理)等企业管理软件的企业,数据的安全性和重要性往往至关重要,尤其是财务数据和客户信息,这些数据往往是一个软件企业的销售部门的核心机密,将这些至关重要的核心数据放在第三方的服务器上,对于当时大部分企业来说是无法接受的。特别是服务器和网络有时会遇到不可预知的故障,而如果一个企业进行关键业务的时候发生这些故障,那么这种服务就会被质疑。有能力的企业会考虑使用传统的软件购买模式:购买软件、购买服务器、购买实施和服务。虽然价格会较高,但有些业务的敏感程度是不能用金钱来衡量的。

  二、软件功能的差异

  软件托管服务一律使用的是B/S架构,而传统软件则使用的是C/S架构或者三层结构,浏览器编程能否实现GUI界面下的全部功能,是一个很复杂的问题,而ASP失败的一个重要原因就是用户不习惯浏览器下的业务模式。而B/S架构的软件界面几乎都远远逊色于C/S架构的软件。

  最终的结果是,ASP模式在中国失败了,那时没有用户能接受这种服务方式,不少软件开发商进行了无谓的尝试,最终都无疾而终。然而几年过去了,SaaS又跃入了舞台,成为业界人士热捧的概念。

  然而大家都似乎在回避ASP的失败教训,SaaS其实本质就是ASP,ASP和SaaS和重点都是“软件部署为托管服务,通过网络存取”,运营模式都包括“软件所有权属于供应商,供应商来负责基础设施和软件维护升级工作”,服务方式都是“客户按一定的付费周期来租赁供应商的服务”。

  大多数在ASP上吃过苦头的软件开发商,面对SaaS都会思考这些问题,当年自己的客户一律不接受ASP的服务方式,难道仅仅因为换了个名称,客户就会接受SaaS吗?

2006年11月14日星期二

Blog广告新创意:Review Me

  这是一篇付费评论(The following is a paid review)。

  最近,不少Blog都在谈论一个名叫“Review Me”的新型广告发布系统。

  这个广告系统只针对Blog而推出,类似付费评论的模式,并且做为入门测试,用户可以先来评论一下ReviewMe自己,ReviewMe也会为此支付一定金额。ReviewMe的主页上说,已经为这类评论分发了25000美元了。

  评论的操作很简单,先登录ReviewMe注册一个帐号,然后提交一个Blog地址(似乎只能提交独立域名的Blog,不支持托管BSP的地址),目前看来没有限制中文用户,注册完成后,点中间的图片提交评论ReviewMe的申请,这样,你需要在剩下的48小时内写一篇评论ReviewMe,内容需要满足以下条件:

  1、你必须以某种形式声明这篇文章是付费文章,比如在文章中加入“付费文章”或者“广告”等文字。

  2、评论的字数必须至少200字,文章多长是没有限制的,但必须在200字以上,这个字数指的的英文的字数,目前还不知道换算为中文应该是多少字。

  写完文章后,将文章地址提交到系统中,就可以完成一次评论。

  付费方法有两种,一种是通过支票方式支付,一种是通过PayPal支付,就速度来说使用PayPal收款速度最快,不过钱是放在PayPal中,美国用户可以将钱收回到自己银行帐号中,中国大陆的用户就比较麻烦,可以通过支票收钱,也可以通过自己的招商银行的香港一卡通将美元存入香港的帐户,这种方法会自动将美元转换为港币,有一些汇率损失。

  Review Me这种广告形式还是很独特的,相当于一种付费软文。Review Me做为一种中介,介于广告商和Blogger之间,广告商通过Review Me系统提供的Blog价格(比如200美元价格),可以提交一张需求评论的订单,这时候Blogger就需要在一定时间内写一篇评论文章,从而获得100美元的收入,而Review Me自己也获得100美元的分成。

  这种模式可以避免一些网络欺诈,Review Me做为中介商可以协调各方面的利益,然而做为中文Blogger来说,Review Me这种广告模式是不可能给Blogger带来稳定的收入。具体分析原因如下:

  首要的原因是,广告是由广告商驱动的,广告商需要选择一个最合适的Blogger来写软文,而目前这套系统是英文的,广告客户也大部分是英文客户,不太可能去选择中文的Blogger来写广告。

  其次,写这种软文对于Blogger自身来说也是一种伤害,写得越多,伤害越大,读者喜欢看的是有价值有意义的文章,没有读者喜欢整天看广告,时间是宝贵的,浪费别人的时间无异于谋财害命。

  再次是价格因素,如果我是广告商的话,我会思考这样一个问题,我通过Review Me做为中介来发布广告需要200美元,而Blogger自己会获得100美元,那么如果我直接向Blogger付款150美元不是也可以达成这笔交易吗?Blogger自己可以多得50美元,而我则可以节省50美元,这是一个双赢的结果,何乐而不为呢?

  最后是广告的效果问题,Blogger广告的效果有多少,一直是一个难以判断的问题,一般Blogger不会自己败坏自己的名誉来大量写付费软文,这和广告商的预期是恰恰相反的,广告商如果发现自己投入的资金无法获得足够的回报,那么广告商就会放弃这种广告行为,而转向类似Google Adwords这种传统广告形式,因为传统广告回报稳定且效果明显,这样循环下去的结果就是类似Review Me的这种广告形式彻底破产。

  不过话说回来,Review Me这种广告形式还是很有创意的,其前期似乎处于“烧钱”的状态,具体这种广告是否成功,我们只要拭目以待就可以了,因为一个企业不可能永远都处于“烧钱”的状态,烧到一定地步再不盈利,那就只有破产了。因此我相信,如果明年的今天,Review Me还没有倒闭的话,那么这种广告就有一定的市场认可。

Flickr工具、插件大集合

  英文原文地址:The Great Flickr Tools Collection

  中文译文地址:Flickr工具大集合

   对于图像存储、共享和组织领域来说,绝对是具有革命性意义的,它能很方便的管理图像,能协同处理。并且提供了很多功能,如留言、批注和为你的照片添加tag,发布到任何blog上,共享和实时聊天等等。Flickr有两个主要目标,声称要成为最好的在线管理和照片共享工具:

  • 帮助人们把他们的照片提供给有需要的人
  • 建立一个组织管理照片的新方法

  之前,为大家翻译过一篇美味书签del.icio.us的工具列表,这次我们来看看更多更丰富的Flickr工具。

Flickr提供的官方

 由flickr用户创建的有趣并且有用的工具:

2006年11月12日星期日

美味书签del.icio.us的工具、插件完全列表

  英文原文地址:Comprehensive Listing of Del.icio.us Tools, Plugins and Add-ons for Social Bookmarking

  中文译文地址:美味书签del.icio.us的工具、插件和附加工具完全列表

  你是否在使用美味书签 Del.icio.us?这是一个很棒的基于web的社会书签工具。另外值得一提的是,它的这个域名也很有意思,把英文delicious(美味的)适当的分开来作为域名,的确很有创意。随着Del.icio.us使用的用户越来越多,形形色色的工具、插件和附加工具也越来越丰富。当然Del.icio.us本身也提供了相当多的工具,比如把Del.icio.us中的书签每日自动发布到wordpress日志中、使用Del.icio.us跟踪你的blog等等,而这里就列出了一个全面的第三方扩展工具列表,下面,我们就来看看这些东西能给我带来什么功能。

2006年11月11日星期六

Google Page Creator无法访问

  昨天发现Google Page Creator目前已经无法访问了。

  Google Page Creator是一个类似Yahoo地球村的免费个人主页服务,今年初才开通服务,很奇怪,为什么Google会这么迟开通这样一个服务,类似个人主页服务比如Yahoo的地球村(GeoCities)已经开通了整整12年了。地球村免费主页服务成立于1994年,早期利用在个人网页上的广告来赚取广告收益,曾经风光过一段时间,然后被Yahoo看中并收购,一直存活到现在。但是目前个人主页的概念已经逐步落伍了,人们对Yahoo地球村上的广告也感到越来越厌烦。

  Google不知道出于什么原因,在今年早期开通了Google Page Creator服务,不过这个服务不支持FTP令人感到遗憾,并且经过一段时间的观察,我感觉这个服务早晚会被封掉,因为早先我曾经看到一些国内的SEO利用Google Page Creator去优化一些非法的关键字,这种行为难免会被人注意到,Google不去删除那些页面,自然会有人来让那些页面无法访问的。

  目前目前几乎所有的国外免费主页服务都已经被封,Yahoo的地球村那么响当当的牌子不是一样被封。美国在线的免费主页目前还没有被封,我估计是因为知道的人太少的原因。

  唯一的例外可能就是微软的MSN SpacesMSN Spaces是主动配合的典范,如果真的有一天封了MSN Spaces,那就真的有些意思了。

  Google Page Creator被封其实也没有什么太不了的,因为这个服务并不是什么独一无二的服务,可以替代的服务很多,目前便宜的虚拟主机还是比较多的,使用虚拟主机而不是免费空间,会是一个更好的选择。

  更新:11月13日,Google Page Creator又可以正常访问了,看来已经迅速的解封了。另外发现Yahoo地球村的免费主页也可以正常访问了。

中文维基百科解封

  从昨天起(2006年11月09日),中文维基百科似乎已经完全解封了,无论电信还是网通的用户都可以访问正常。

  自从去年10月中文维基百科被封起,到现在已经整整一年多了,实际上,从10月份就有报道说,中国部分地区可以访问中文维基百科了,但是我用自己的线路(电信ADSL)尝试了一下,还是无法连接上中文维基百科,搜索其域名连接会被重置,说明那时其域名还是在黑名单中。

  但是我估计中国北部的小部分地区已经可以正常访问维基百科了,因为我查看百度搜索引擎的网页快照,10月份搜索“维基百科”,已经可以发现中文维基百科的域名和百度快照了,说明百度的Spider已经可以连接中文维基百科了。

  而从昨天晚上起,各处都传来可以正常访问中文维基百科的消息,我自己也可以正常访问,为了验证这不是临时解封,我还是耐心等待了一天的时间,发现至今为止中文维基百科都是可以正常访问的,看来这次可能是真正解封了。

  我去年就曾经说过,封杀中文维基百科这么优秀的而庞大的知识宝库是一种很不负责任的做法,“知识改变命运”,维基百科是一个名副其实的百科全书,封杀这样的网站实在令人无法理解。然而,这次解封是不是临时的解封呢?会不会过段时间再封掉这个网站呢?这还是难以判断的。BlogSpot就是解封2个月后又被重新封锁,中文维基百科会不会步BlogSpot的后尘呢?目前离维基被封正好一年时间,会不会当时封的时候就设定了时间,一年后自动解封呢?

  另外一个值得注意的网站是维客网,这个网站曾经在中文维基百科被封的当天正式运营,并且大量复制维基百科的内容而不注明出处,因而引起很大争议,后来由于维客中国的服务器被黑客攻破而被删除了全部数据,维客中国也不得不在仅仅生存了十天的情况下黯然关闭。新的维客于今年5月份悄然上线,不过维客网依旧使用的是中文维基百科的数据库。新版的维客网增加了类似百度贴吧的维客帖吧,其界面几乎和百度贴吧一模一样。经过一些使用发现,对于中文用户来说,贴吧的形式比维基的“讨论”形式更贴近普通用户一些。

  目前,中文维基百科已经可以正常访问了,不过,如果你访问的时候出现“page not found”等提示,请修改一下hosts文件,将原先增加的一些IP删除即可正常。当然,这次中文维基百科是否是永久的解封,还需要再多观察一段时间。

  更新:好事情总是不会太久的,11月17日以后,中文维基百科再次无法访问。让我们纪念这段短暂的正常时间吧。

2006年11月10日星期五

视频共享网站简评

  今天收到腾讯的一封邮件,名称是QQ Video公测邀请,说我的帐号可以登录QQ视频共享网站了。

  于是赶忙登录上去看了一下,真可以登录,于是就在里面浏览了一番。

  总的来说,QQ视频共享网站和目前已有的视频共享网站没有什么太大的区别,我也尝试上传了一下,感觉上传速度非常快,基本上可以达到ADSL网络速度的上限,上传需要填写一个表单,有标题、标签、分类、简介等内容,都是必填项。上传后,视频不会立刻显示,需要“等待审核”,这大概也是中国特色的视频共享了。

  浏览了一下QQ视频共享网站,感觉速度还可以,不过目前节目品种有一些单一,播放也是使用Flash技术,清晰度不是特别好,比如里面有一个《真三国无双BB》片头动画,虽然可以在线播放,但是如果以前下载过真三国无双BB的清晰视频的话,就会发现两者效果不可同日而语了。

  这其实是视频网站普遍存在的一个问题,就是带宽问题,以目前ADSL的带宽,是无法实现较高清晰度的视频浏览,而ADSL带宽升到5M到10M左右,才有可能实现类似电视画面那样的视频效果。

  随着Google收购了YouTube之后,国际上的视频共享的天下基本上都是Google的了,由于Google视频短时间内还不会进入中国,因此国内视频发展还是有一定的空间,不过随着腾讯等门户网站的加入,国内视频共享的格局可能会发现变化。

  视频分享网站是一个非常消耗资源的网站,不是一般人能玩得起的,目前基本上属于烧钱卖知名度,由于大部分国内视频网站版权上都有问题,很多视频都侵犯了电视台、唱片公司、电影公司等的版权,因此这些视频网站一旦知名度提高,就一定会面临官司缠身的命运,如果只是等待大公司来收购,不知道国内是否会有一个像Google这样的冤大头会给这些视频共享网站埋单。

  目前做国内视频共享的主要有:新浪爱问视频UUME六间房Mofile我秀我乐网土豆网爆米花

2006年11月9日星期四

Google AdWords免费送优惠券

  今天遇到一件有趣的事情,我开通的Google AdWords却一直没有使用,Google竟会送100元优惠券给我,邀请我使用Google AdWords投放广告。

  很久以前我曾经创建了过一个Google AdWords帐户,不过只是花了50元钱开通了帐户,并关联到我招商银行的VISA信用卡,一直没有投放广告。主要原因是还没时间研究Google AdWords,我想等以后有时间了再去烧钱。

  今天收到Google的一封邮件,说Google“注意到您曾经创建了Google AdWords帐户,却尚未体验到我们广告计划的优势”,于是Google就给我两重惊喜,送我100元人民币优惠券代码,并“期待着为您提供最有效的广告服务”。

Google AdWords的优惠码

  这时候登录我的AdWords帐户→点击“我的帐户”标签→点击“结算首选项”→在页面底部的“促销代码”框中输入优惠券代码,这时候提示成功,然后查看“结算摘要”,发现帐户的金额的确是多了100元钱。看来真是“天上掉下来美元啦”(疯狂的石头语录)。

  由此看来,Google对广告客户的关心还真是无微不至,即使没有投放广告,也会得到这样的优惠,让客户体会到良好的服务和关怀,由此得到更好的口碑。

  好的口碑可以给消费者带去惊喜,给自己带来更大的市场占有率和客户,口碑巨大的可信性、促销力,使其成为一种效力最好的广告形式。Google从若干年前一个名不见经传的小公司,迅速成长为全球网络世界呼风唤雨的巨头,相信对这一点是有深刻理解的。

  最后,免费注册申请Google AdWords广告发布请点击这里进入

2006年11月8日星期三

Google全球顶级编程挑战赛揭晓

  下面是Google公关发来的新闻稿,说的是Google全球编程挑战赛的决赛已经揭晓,中国选手获得了非常优异的成绩,以下是全文。

全球顶级编程挑战赛揭晓,中国选手成绩斐然

  中国北京,2006 年11月7日,Google(谷歌)中国公司今天宣布,在刚刚结束的国际顶级编程比赛——2006年Google(谷歌)全球编程挑战赛决赛中,中国选手取得了参赛以来的最佳成绩。来自中国的选手王颖勇夺本次比赛的第二名,另有6名选手进入前50名,本次比赛共有13名中国选手成功入围前100名,其中就包括了本次比赛唯一的中学生,来自中国广东中山的中学生余江伟。据了解,此次中国进入决赛的选手人数仅次于俄罗斯,排名全球第二。来自俄罗斯的选手获得了本次比赛的冠军。

  今年的比赛吸引了全球近21000名编程高手参与到比赛中来,参赛选手总数也创造了历届之最。中国选手在本次比赛中共有13人晋级全球百强名单。其中11名选手是分别来自清华大学,浙江大学,复旦大学和香港科技大学等知名高校,而来自中山一中的高三学生余江伟则是入围全球百强的唯一中学生!Google(谷歌)全程赞助了中国选手去美国纽约Google(谷歌)公司工程部参加总决赛。

  Google全球编程挑战赛被誉为编程比赛的“诺贝尔奖”,它是由Google公司组织的一年一度的全球编程高手们的‘华山论剑’。自2003年成功举办了第一届比赛以后,凭借其极高的技术水准,独特的PK赛制已经成功吸引了大约6万名来自全球各地的编程高手,迅速成为全球编程人员最热衷参与的挑战赛之一。

  Google(谷歌)公司副总裁兼大中华区联合总裁李开复先生表示,今年的比赛结果再次向世界证明了中国编程水平已经居于世界领先地位,中国选手所展现出的技术能力丝毫不逊于任何其他国家,而且在某些技术方面则显得更为突出。Google(谷歌)全球编程挑战赛也为很多优秀的中国编程技术人才提供了一个展现才华,与世界交流的舞台,Google(谷歌)中国公司愿意为中国编程人才的发展提供更多的帮助。

2006年11月7日星期二

百度和Google的域名权威度分析

  Google在显示网页排名的时候,有可能会给网页赋予一个权威度值,这个权威度和网页的PageRank是不同的,无法从外部看到,而这个网站权威度的算法,目前仍然是一个未公开的算法,可能和反向链接数量可能有关系,可能也和网站域名类型、注册时间有关系,如果适当提高域名的权威度,对于Google的排名有很大的好处。

  百度其实也有类似权威度这样的算法,但是一般看来百度显示网页排名和所谓的域名权威度的关系不是特别大。这和Google的算法是有一定区别的。根据一般观察,注册时间长的大型网站(页面内容多)往往在Google上有较高的权威度,而百度似乎比较注重论坛、社区、博客上的链接,而把这些链接作为衡量权威度的一个标准。

  其实,从我以前介绍的“Google和百度收录网站页面比较”一文,就已经涉及到了网站权威度的问题,不同权威度的网站,在百度和Google收录的频率是不同的,在搜索最终结果中,权威度也将影响页面的最终排名。

  页面排名涉及到搜索引擎算法的技术问题了,目前Google和百度不同的是,Google对于权威度高的网站往往排名较高,这在国外的确没有什么问题,但是在国内,还是建议应该参考一下百度的算法,降低一下门户网站的权威度。国外的大网站都基本上不会作恶,而国内的门户网站就不同了,他们的版权意识较差,并大多不遵守Blogger广泛使用的创作公用CC版权协议,这也是令人遗憾的,这样的商业门户网站,如果Google给于其过高的网站权威度,显然会影响搜索体验和搜索质量,而百度的搜索算法就显得更为符合中国国情了。

  百度对于社区论坛的重视,主要也源于中国人的上网习惯。中国人天生下来就喜欢泡论坛,因此一般大型论坛的人气都非常旺,百度也喜欢收录各种论坛或者博客的页面,并给于其较高排名,这样就显得百度收录的文章较多,而Google则喜欢收录大型网站的页面,反而会影响收录速度,对于某些类似个人原创文章的搜索也未必能有更好的搜索体验。建议Google能够针对中国的国情和特色微调一下相关的搜索算法,相信会对搜索结果的用户体验得到不少提升。

2006年11月6日星期一

Google搜索的域名重定向功能

  Google如何能正常访问一直是一个很令人头疼的问题,我以前也专门写了一些访问Google的临时解决方法

  前几天看到网上流传的信息,说Google搜索敏感关键字后会自动转向Google.cn域名,这虽然会让许多人不满,不过也是一个无奈的解决思路,于是我就立刻尝试搜索了一下,发现是无效的,显示的依旧是页面无法访问,难道这个功能只开放了中国部分地区吗?

  昨天晚上和Google的人一起吃饭,再次聊到这个问题,他们证实的确开发了这个功能,因此我怀疑可能是我本地IP地址没有被正确识别的问题。

  于是回到家里进行了多项测试,终于发现,不是我IP地址的问题,是我搜索的方法有问题(或者说Google开发考虑的不太全面)。

  首先,我的电脑是安装了Google工具栏的,我一般都是直接在Google工具栏或者个性化主页里搜索,因此我在工具栏搜索之后,的确直接返回连接被重置。

  接着,我重新连接网络后,尝试直接访问Google.com主页,然后在上面直接搜索一些敏感关键字,这时候的确出现了一个不同的画面,如下图所示。

Google搜索的域名重定向功能

  我们看到,被访问的域名已经转到了Google.cn,同时Google.com暂时无法访问,这时候我再访问Google.com,的确是无法访问了,如下图所示。

Google搜索的域名重定向功能

  根据我的猜测,这个功能的实现方法可能是,在搜索某个关键字的同时,从国内的一个地址查看搜索后Google.com是否能访问,如果不能访问,则Google就自动进行重定向操作,将搜索域名重定向到Google.cn,由Google.cn返回过滤后的搜索结果给最终用户,而此时的Google.com也已经无法访问了。

  不过目前经过我的测试,直接从Google工具栏以及Google个性化主页中搜索,还是和以前一样,说明这个功能只是增加到Google常规主页搜索上了,不知这是有意设置还是开发中的疏忽。

给Google Adwords和Adsense的建议

  今天有幸得到李开复邀请我们一些深圳的草根博客一起吃饭,感到很荣幸。席间大家都对中国Google的发展提出不少好的建议和意见,我这里也对Google中国的发展提了一些个人的建议,我的这些意见是对于中国软件企业发展的一些体会,相信对于互联网企业可能也有一定的参考价值,供参考。

  一、大力发展渠道销售

  Google的主要收入来源是它的广告业务(AdWords),在中国地区应该也是这样的。中国具有自己独特的国情,就是营销渠道在中国具有非常独特的位置,一个企业要想更好地销售自己的产品,渠道是其核心竞争力。建立好自己的全国渠道网络,对于产品的销售以及公司在国内的发展是一个重要的基础。

  当然,一下在全国几十个省市建立营销渠道是很困难的,因此,第一步可以在中国的四个城市(上海、北京、广州、深圳)先建立渠道代理,有了这四个城市的销售市场,就有了大部分的中国市场,其他市场可以暂时先通过直销的方式实现。

  二、命名的建议

  AdWords、AdSense都没有中文名称,这不利于国内的渠道宣传和销售,而百度类似的业务就有自己的中文命名(百度竞价排名服务、百度联盟),有了中文名,对于中国企业来说才谈得上使用。中国企业目前的网络应用和信息化应用都非常低,对于网络广告的认识也有效,很多企业根本就不知道Google或百度是何方神圣,要让他们花钱买广告就只能依靠基层渠道的销售。

  另外,我本来还有一个关于AdSense的建议,就是建议AdSense和目前的百度联盟是一样的,通过国内银行转账的方式付款而不是通过支票的方式,因为托收支票,每个月至少要亲自跑一趟银行,比较麻烦。不过席间有人提出银行转账的扣税问题,使得我改变了看法,感觉还是托收支票好一些。

2006年11月5日星期日

中国企业管理软件的发展简评

  昨天说到微软提供的免费企业管理软件时,顺带提了一下中国国内的企业管理软件,今天,我将详细具体地介绍一下中国自己的企业管理软件的成长过程。

  我昨天之所以认为微软的免费企业管理软件是个笑话,主要是因为微软在ERP上是一个新手,其管理理念远没有SAP等提出的概念成熟。

  首先说一个概念,ERP是英文Enterprise Resource Planning的缩写,中文意思是企业资源规划。它是一个以管理会计为核心的信息系统,将企业内部所有资源整合在一起,对采购、生产、成本、库存、分销、运输、财务、人力资源进行规划,从而达到最佳资源组合,取得最佳效益。

  中国的ERP厂商源于财务软件,财务软件偏重于企业的内部管理,市场主要集中在局限企业内部资源管理的中小企业。目前国内几个主流的ERP提供商,其前身几乎毫不例外地来自财务软件。

  国外著名的ERP软件供应商也相继进入中国,包括著名的SAP公司和Oracle公司,去年这两家公司在中国ERP软件市场取得了第三和第四的成绩,对国内的ERP软件供应商已经产生了一定的威胁。由于SAP和Oracle的技术能力和开发能力都很高,因此对于国内的一些大客户提出的需求具有相当大的优势,而国内开发商对于小单以及技术支持和客户服务具有明显优势。

  ERP是一个很好的概念,但是实际应用却非常复杂,这方面原因很多,主要原因是ERP软件本身的复杂性,与通常的应用软件相比,ERP软件需要开发商提供实施人员进行安装实施,由于企业管理信息化是一项复杂的高知识含量的工作,而且风险很大,没有经历过实际项目的人很难有效把握整个项目的推进和规避风险,实施人员需要和企业自己的信息人员进行交流,并根据企业自己的特色进行实施,如果由企业自己单独摸索,则基本上是死路一条。

  ERP的概念早几年在中国流行的时候,中国自己的ERP软件很可能是一个“伪命题”,正因为ERP的概念复杂,实施困难,所以国产的ERP依然还是以财务管理软件做为主要内容,实际上就是功能更多的财务软件,由于国内媒体的炒作,ERP成了企业管理软件的代名词,所以国内厂商就将自己的财务管理软件都模糊化笼统地套上了ERP的帽子。

  当然,经过了这么多年的研发,国内的ERP供应商也研发出不少很有特色的管理软件,在实施大型ERP系统上也都初漏锋芒,甚至抢了SAP和Oracle的数百万的ERP大项目,这都是一个可喜的进步。不少厂商对于ERP和CRM(客户关系管理,Customer Relationship Management)、SCM(供应链管理,Supply Chain Management)的整合和实施都有一些不错的尝试,对于信息流、资金流、物流在企业内部的管理都渐渐成熟,相信不久的将来,本土ERP厂商在巩固中低端市场的同时,会逐步拓展高端市场,形成一个良好的成长发展之路。

2006年11月4日星期六

微软的免费企业管理软件

  微软最近发布了一个针对小型企业的免费企业管理软件Microsoft Office Accounting Express 2007,这引起了我很大兴趣。

  根据微软自己的介绍,去其下载地址下载下来这个庞大的软件,有两百多兆,一安装,就提示我一个如下图的信息,看来不能在Win2000系统上安装啊。

Microsoft Office Accounting Express 2007

  这令我感到非常奇怪,为什么这个针对小型企业的软件连Win2000都不支持呢?Microsoft Office都是支持Win2000的,是不是微软又想要用户必须升级或者购买XP系统呢?看来微软做免费软件的动机不纯啊。

  这套软件对于中国的企业管理软件可能会有一些冲击,但是总的来说,我还没有看到能威胁中国本土软件商的实质性的东西。

  这里面最主要的原因是,中国实行和国际不同的财务会计制度,中国会计规范属于制度模式,就是以制度的形式由国家财政部制定颁布,具有指令性、强制性和统一性的特点。中国的公司做帐不可能实行国外的会计财务制度,必须被迫使用财政部制定的会计制度,因此微软的这套英文财务软件,即使是免费的,小型公司估计也只能拿来玩玩,绝对不可能真正实施到自己的会计制度中,一个没有人使用的软件,自然不会对国产的软件公司造成威胁了。

  中国财政部的制度挽救了中国本土的企业管理软件公司,使得这些中国软件开发商没有任何国际竞争的情况下顺利地发展壮大,不过由于中国民族企业的壮大,国外软件商势必会垂涎这一巨大的市场,微软就是其中最可怕的一个危险人物。

  微软在中国有自己的研发中心,并且和中国政府各个环节都疏通的不错,如果微软通过自己在中国的研发中心,将这套财务软件本地化并中文化,使其符合中国财政部颁布的会计制度,并整合进中文Microsoft Office中去,这就会给国内的财务软件公司带来巨大的困扰,因为国内公司开发的财务软件,最少一套也要数百元,而微软能免费提供一个符合中国国情的财务软件,那自然具有巨大的竞争力,这对于国内同类型的软件商来说必然是一种可怕的威胁,没有那个中国软件公司敢于和微软正面竞争,微软的IE击败Netscape不就是依靠免费加捆绑吗?微软的强大开发能力以及服务是任何软件公司都无法回避的现实问题。

  不过话说回来,小型的企业管理软件虽然可以免费,但是大型的企业管理软件还能免费吗?我相信是不可能的,因为这里面的开发成本是相当巨大的,并且大型企业管理软件需要大量的服务、实施和技术支持,如果不收费的话,这方面投入的资金和成本将很难得到回收,总是做亏本的买卖,微软应该不会做这样的傻事。

2006年11月3日星期五

时间隧道,穿越时空的记忆

  雅虎公司前一段时间搞了一个所谓的“时光宝箱”计划,按照计划,世界各地的人们可于今年10月10日至11月8日期间打开雅虎网站专题网页,将文本、图像、音频、视频文件等内容上传,保存到一个巨大的网络“时光宝箱”中。雅虎计划,等到2020年公司成立25周年纪念时,再重新开启这些封存的“时光宝箱”。

  我对这样的计划倒是不感冒,因为对于我来说,我有写日记的习惯,日记其实就是我的“时光宝箱”,这几天翻看一下十年前写的日记,就颇有感慨,十年前,也就是一九九六年,我在想什么、看什么呢?现在我摘录一些当年的日记片段,其中有些观点看起来还很幼稚,估计是书读呆了,不过至少在我看来还是蛮有意思的。

  一九九六年三月八日

  今天是三八妇女节,我打算使用马克思主义的理论来探讨一下当代中国女性所面临的种种问题。

  女人的地位和作用从学生时代就逐渐形成了。我上小学时,男生女生人数一样多,初中时,女生比男生多好几个,高中时男女比例为2:1,大学比例则拉大到4:1,理工类大学或高中女生人数少于男生是普遍的事实,而有趣的是师范学校、外语学校则女生多于男生。事实上这种外因决定论的观点是根本站不住脚的,因为女生虽少,但是成绩最好的往往是女生。那么内在的原因是什么呢?

  首先需要明确的事实是,男女是有别的,男人和女人的胜利构造显然是不同的,而且科学家进一步发现,男人和女人的大脑是有很大差别的,大脑构造的不同,决定了一般男生天生下来对数理化就有潜力,而女生对文史类有潜力,然而人与人是不同的,人的外部环境也是不同的,有潜力不等于有能力,一切都得靠后天的奋斗。

  以工科大学为例,女生在学习上的确十分刻苦,成绩也优秀,然而令人遗憾的是他们往往过于注重成绩而忽视了对能力的培养,例如计算机语言课,某个女生的成绩非常高,然而在上机的时候却连程序中一个最简单的错误都找不出来。所以到了毕业的时候女生往往比男生更难找工作。

  一九九六年三月三十一日

  为什么我们的国家会和知识分子格格不入呢?

  知识分子(特别是高知)与其他人不同之处是,他们能独立地系统分析和思考问题,别人只知道“是什么”,他们却偏偏要追问“为什么”,当他们渐渐发现社会的本质的时候,他们的噩运便到来了。这也就是为什么高级知识分子在历史上受迫害最深的原因了。

  一九九六年四月十日

  萨特:“人无非就是人打算要做的东西,人实现自己有多少,他就有多少存在。因此,他就是他的行动的总和,他就只是他的生活。”

  一九九六年五月八日

  今天是法西斯投降五十一周年,半个世纪前,不可一世的法西斯帝国被推翻了,人类文明有摆脱了一次毁灭的边缘,文明和民主终于胜利了。

  然而半个世纪过去了,我发现法西斯可能其实并没有在这个地球上消失。为什么这么说呢,首先要从法西斯的定义说起。

  什么是法西斯,法西斯的关键在于组织方式是绝对的独裁专制主义,即许多人服从某一个人(或者少数人)的领导,下级绝对要服从上级。

  当然,这也会产生一个疑问,我们强调的个人利益服从国家利益算什么呢?因为除了像上帝这样的圣人以外没有人能够全面的把握社会的各个方面,于是这所谓的“国家利益”便会时而偏离人民利益,当大多数人民的利益受到损害的时候,再强调服从“国家利益”就是一个非常危险的行为。

  一九九六年五月十八日

  我现在有些同情毛泽东和他的文革了。

  人民是永远痛恨官僚的,并渴望自由的。而他给了人民自由,给了人民权力去打到官僚,多么伟大啊。

  然后后来文革却失控了,最后几乎彻底失败了,毛的本意虽然是好的,却做了一件事实上错误的事情。

  一九九六年六月四日

  自由固然是金钱所买不到的,然而却可以为金钱而卖掉,中国百余年来的贫穷和落后早就了现在的一切,我们又能怪谁呢?人必须得现要活着,这一点十分重要。

  晚上,天已经很黑了,我站在黑暗的夜色中,默默地祝愿一个美好的未来。

  一九九六年六月五日

  中国文化的不幸在于中国的三国迷却要玩日本的三国游戏,因为日本人做的三国游戏是最好的。

  《三国演义》为什么拥有如此大的魅力呢?在我看来,主要是因为《三国演义》的文学价值极高,在中国古典文学中是处于鹤立鸡群的地位,其博大精髓是其他著作所无法比拟的。《三国演义》是一部其实宏伟的战争史记,他所叙述的是英雄的历史、伟大的年代、叱诧风云的任务、变化多端的战争,一切的一切,都是那么迷人。

  《三国演义》的确拥有无穷的魅力,它的影响何止百年千年,真正的名著,任何时候阅读,都能给人以新的启示。

  以上是我十年前写的一些东西,还有一些文章以读书心得的形式发布了,也是那个时间段写的。

2006年11月2日星期四

Google Apps for Your Domain开始支持中文

  Google的官方Blog今天发布一则消息,说“ Google Apps for Your Domain”新增加了包含简体中文在内的17种语言支持。

  Google Apps for Your Domain这个产品是企业或者整个组织内部进行沟通和协作的强大工具,其中包含了Google几个主流产品:带有用户域名的GmailGoogle CalendarGoogle Talk,这些服务都是免费的,用户的企业或者组织不需要安装任何软件或者购买任何硬件,就可以定制自己的用户界面、标识和颜色。所以现在只要提供一个必要的域名,所有的用户就都可以定制自己的Google应用,并且不需要花费一分钱。

  Google Apps for Your Domain目前支持的的语言有:法国、意大利、德国、西班牙、挪威、荷兰、芬兰、瑞典、英国英语、波兰、土耳其、巴西葡萄牙、俄罗斯、中国(繁体)、中国(简体)、日本、韩国和美国英语。

  Google Apps for Your Domain目前在这个地址可以进行申请。

2006年11月1日星期三

Google黑客搜索技术

  使用Google搜索引擎可以让普通人做一次黑客(Google Hacking),其原理也是很简单,很多有特定漏洞的网站都有类似的标志页面,而这些页面如果被Google索引到,我们就可以通过搜索指定的单词来找到某些有指定漏洞的网站。

  举个例子来讲,FrontPage Extensions是微软IIS上的一个产品,但是其Netscape版本中的口令文件的访问权限设置有错误,黑客取得这些口令文件后,使用暴力破解工具就有可能获取一些弱用户帐号口令。

  如何获取口令文件呢?搜索一下这个ext:pwd inurl:(service | authors | administrators | users) "# -FrontPage-",可以发现有128个口令文件可供下载。

  这里有个英文网站,里面有很多Google黑客的漏洞词资源,大家可以上那里找一些漏洞。

  另外,如果记不住类似inurl这样的Google搜索命令,也可以在Google搜索主页上找一个叫“高级搜索”的链接,点进去之后,可以通过指定的系列条件来简单地完成特定的搜索方式。

  还有一种Google黑客的方法是间接的,比如某个流行的网络产品有漏洞,那么就搜索这个产品的相同的字符串,比如某天phpBB论坛系统出现一个漏洞,那么我们就使用Google搜索“Powered by phpBB”,就可以搜索出几乎所有使用phpBB系统的论坛,然后一个一个地去黑吧。