2013年4月23日星期二

百度百科取消扩展阅读

  据百度百科发布公告声称,因为扩展阅读功能和参考资料类似,因而取消扩展阅读功能,同时用户也注意到,参考资料里的链接都被添加了nofollow标签。

  百度在公告里称:“扩展阅读对百科词条内容提供引用来源的主要功能已被参考资料功能替代。扩展阅读自身的功能定位变得越来越不清晰。因此百科决定对扩展阅读内容进行隐藏处理,同时用户历史编辑数据不会被删除。未来百科会通过其他的方式来实现扩展阅读的其他功能。”

  在原有的功能上,参考资料是与正文中内容一一对应的,用于填写词条中直接参考/引用的内容;而扩展阅读则可以不与正文中的内容一一对应,用于填写与词条内容纵向相关的扩展性内容,方便浏览词条的用户丰富知识。

  百度的这项措施,我觉得主要是为了应付国内众多针对百度百科进行的SEO外链操作,由于众所周知的原因,百度百科在百度搜索中的排名高的离谱,因此很多站长就搞歪脑筋,通过各种各样的方法字百度百科的词条里添加外链,而大部分外链都是添加在“扩展阅读”内容中,因此百度将这个栏目隐藏,相当于批量删除了大部分SEO链接。同时对参考资料里的链接都被添加了nofollow标签,由于百度和Google都支持nofollow标签,这使得所有外部用户对百度百科添加的链接,在搜索引擎(百度,Google等)中都被忽略。(注:nofollow是一个HTML标签的属性值。它的出现为网站管理员提供了一种方式,即告诉搜索引擎"不要追踪此网页上的链接"或"不要追踪此特定链接"。这个标签的意义是告诉搜索引擎这个链接不是经过作者信任的,所以这个链接不是一个信任票。nofollow标签是由谷歌领头创新的一个“反垃圾链接”的标签,并被百度、yahoo等各大搜索引擎广泛支持,引用nofollow标签的目的是:用于指示搜索引擎不要追踪网页上的带有nofollow属性的任何出站链接,以减少垃圾链接的分散网站权重。)

  扩展阅读类似维基百科条目里的外部链接,该功能在维基百科里依旧存在,同时维基百科对链接也添加了nofollow标签,而维基百科在Google中的排名也高的离谱。

  维基百科的排名高,不服气的人要少一些,毕竟人家维基百科的条目都是原创的,而且还是公益性质的网站,一条广告也没有,内容质量也普遍较高,有一定的权威。

  而百度百科的排名高,很多人就不服气了,相当多的百科条目都是东抄西抄,有不少是直接从维基百科里抄下来,内容质量参差不齐,条目的权威性不如维基百科。

  然而,在百度中搜索一个名词,百度百科的排名几乎百分之百要高于维基百科,即使相关词条的内容质量相差悬殊也是如此,显然,“更懂中文”的百度有理由让人们相信百度的搜索质量和特殊的品味。

百度百科取消扩展阅读

  总的来说,此次修改,可以进一步提高百度百科词条在百度搜索引擎中的排名,并且关闭了百度之外的第三方网站试图从百度百科获取排名的途径,利用百度百科进行SEO已经是徒劳无功了。

2013年4月22日星期一

Google应用商店出现恶意软件

  据搜狐数码消息,根据Android应用提供商Lookout Mobile Security在本周五发布的报告,安全研究人员日前在谷歌Play官方应用商店中发现了一组恶意软件,该恶意代码库名为“BadNews”,被植入到由4个开发者账户提供的至少32个应用程序当中,目前已被下载900万次。

  这次针对Android手机的攻击,之所以能够绕过谷歌应用商店的防御,是因为恶意代码库是在那些无害应用提交到Play商店之后才被注入到它们当中,只有在应用升级之后才会进行攻击。

  这也暴露出谷歌应用商店(Google Play)的一个重大安全隐患,一个无害的应用,通过自身的自动升级或在线更新,很可能会变成一个恶意应用。

  谷歌应用商店和苹果应用商店在应用的升级处理上并不一样,在苹果应用商店,任何应用如果需要升级,都必须通过苹果官方应用商店升级,应用一般也不会在线下载大量数据文件。而Android就不同,很多应用将数据文件放在SD卡,只提供一个很小的文件下载,运行文件后会下载所需数据文件,这使得Google对这些文件的审核变得不可控。

  在应用的升级方面,很多Android应用的升级采取了绕过谷歌官方应用商店Google Play Store而自动下载更新的方式进行,而下载完成后,该应用所获取的权限往往会非常大,这使得谷歌对该应用的升级不可控。

  因此,这种漏洞一旦被黑客利用,黑客只要攻击各个应用程序的网站,替换其下载应用数据为恶意应用,就可以对大量Android手机实施攻击,即使这些手机使用的是谷歌官方应用商店。当初Android允许应用自己升级数据文件而不是依靠应用商店,就注定这类攻击无法避免,谷歌要想从根源上阻止这类攻击,只能学习苹果,从根源上断绝应用的在线升级功能,强制应用必须通过谷歌应用商店Google Play进行升级。

Google应用商店出现恶意软件

谷歌百度推出雅安地震寻人网站

  雅安地震发生以后,各大互联网企业除了捐款外,也纷纷推出了一些公益服务用以救助雅安地震灾区同胞。其中,Google和百度都推出了雅安地震寻人平台,如果各位网友需要找人,或者想要为自己或者其他人报平安,可以登陆Google和百度的雅安地震寻人平台查找和发布相关消息。

  事实上,这已经是Google在近日第二次推出寻人平台了,Google在上周波士顿爆炸案中也启用了这项服务。Google寻人项目始建于2010年1月海地地震,此后每逢灾难发生都会上线。在Google寻人雅安地震页面中,你可以借此搜索震区亲朋好友的状况,或者提供你知道的某人情况。

  百度在昨天发布了雅安地震寻人平台,百度雅安地震寻人的功能和Google寻人类似,拥有“我要寻人”和“我要报平安”两大功能模块,可以通过平台发布要寻找的亲友信息,也可以添加已经平安的当地灾民情况。如果想要找人,只要输入姓名或联系方式搜索即可。据悉,百度平台基于百度搜索和百度贴吧技术架构,并开放了相关模块。第三方网站可以加入相关代码,将百度雅安寻人模块嵌入到自己网站页面。百度表示,百度雅安地震寻人平台上的消息还将会被同步到蓝天救援队,方便救援队开展现场救援工作。

  在雅安地震救援工作紧锣密鼓进行的同时,多家互联网公司摒弃前嫌,打通了各自平台的寻人数据,以便更好的协助灾区搜救工作。

  雅安地震发生以后,谷歌最先推出了寻人页面,随后百度、搜狐、搜狗、新浪微博、搜搜、360搜索、一淘纷纷推出了寻人页面。随之而来的问题是寻人平台太多,寻人者需要逐个平台发布重复信息。

  4月21日晚,360董事长周鸿�发微博称:“建议360、百度、搜狐等公司派出工作小组,一起工作,争取各寻人平台尽快实现数据共享。”

  搜狗CEO王小川转发了周鸿�的微博,称搜狗已经和搜狐打通了寻人数据,希望百度和360加入。

  在社会的一致倡议下,新浪微博、搜狗、360、百度等互联网公司的寻人数据已经打通,百度今天中午上线了全网寻人平台,已经整合了来自360、搜狗、一淘的数据,新浪微博、腾讯微博等数据也将在今天整合完毕。

  据了解,目前寻人数据的通行格式是PFIF格式(People Finder Interchange Format ,寻人信息交换格式),使用这种格式,寻人者在任意一个平台登记的信息会自动被抓取至其他平台,并且信息发生修改时可以在各个平台同步体现。

  Google雅安寻人服务(点此进入

  百度上线雅安寻人平台(点此进入

2013年4月21日星期日

O2O模式为什么这么火

  电子商务现在已经开展了十几年,诞生了各种各样的模式,比如B2B、C2C、C2B等等。然而,最近的电子商务的热点中,O2O(Online To Offline) 似乎成了新的宠儿,阿里的支付宝,百度地图都看中了这块新鲜的蛋糕。

  一、O2O百科

  O2O简洁说就是将线下与线上的机会结合起来,使得互联网成为商品销售的前台。这一模式的出现是大多数企业面对电子商务网店冲击下一个很好的突破口。说到线上线下,大家更容易联想到的是团购。比如我们购买电影票,只需要将收到的短信中的号码告诉营业员,就可以取票去看电影了。

O2O模式为什么这么火

  二、O2O现状

  现在国内的O2O发展方兴未艾,群雄逐鹿。由于O2O模式的不成熟,很多企业都在摸着石头过河,远没有2011年团购业的惨烈。在眼下企业中,正在尝试O2O的传统大企业就有苏宁易购,代表事件就是苏宁易购新社区的诞生。刚刚坐拥3亿用户的腾讯微信也在探求O2O的道路。目前,扎堆O2O模式的以服务业的企业居多。赶集网、58同城、百姓网这些一生活信息服务为主的企业当然不会放过这个机会。淘宝的吃喝玩乐频道、腾讯的美食频道小试牛刀;各大提供本地生活服务的LBS应用纷纷跟进。再小点说,卖煎饼果子都用上了O2O,现在北京的黄太吉——一个只有14平米的只卖煎饼果子的小店,被估值几千万。你说O2O能不火吗。只要有用户,谁好意思放过这个机会,我在36氪中看到有人这样说:给我个SNS,我可以翘起整个O2O。

  三、O2O分析

  O2O为什么这么火?众说纷纭。笔者有两个观点:

  1、炒作新概念

  原因就是这个模式是新的,是充满光明与刺激的,这个模式容易吸引资本。谁在这个模式下成功,谁就成了领头羊。由于互联网马太效应的存在,影响被放大,这家企业在这领域将一家独大,后来者进入的门槛将特别高。搜索业的百度,B2B中的阿里巴巴,IM中的腾讯就是这么诞生的。

  2、降低了成本

  前面说过,O2O将使互联网作为实体店的前台,而互联网很好的解决了商家与消费者者双方信息交流不对称的弱点,因此必定为定位于本地生活服务的企业带来更多价值。网上的订餐、车票、门票,订购酒店将获得更好的体验。将资金放在线上预先支付,既提高了安全性和快捷性,同时还能为消费者提供更多的折扣,在吸引了更多消费者的同时,企业也获得好处。总的来说,降低了信息的交流成本和交易成本。

  总结:一个局外人看看O2O,没有企业资源可以运营,纸上谈兵而已。但是,相信O2O一定会带来整个互联网企业的变革。

  来源:投稿,作者:Halsen  原文链接

2013年4月19日星期五

真正永久使用的电子邮件

  中国雅虎邮箱的停止服务另众多的雅虎邮箱用户感到失望和不满,对于这些用户来说,糟糕的未来可能刚刚开始。

  2007年的时候,中国雅虎曾高调宣布推出“无限容量”的免费“终生邮箱”,该“终生邮箱”整合了雅虎相册、音乐盒、音乐搜索等实用功能,这种不负责任的宣传当初也吸引了不少中国用户,2009年10月30日,中国雅虎关闭了雅虎空间服务,取消相册功能,但因为有许多用户没能及时备份照片,引发很多用户的不满,而雅虎邮箱的关闭给用户造成的麻烦远比关闭相册要多的多。

  目前大部分的互联网服务都会要求用户填写邮箱,很多网站甚至直接以邮箱做为用户的登陆账号,在不同的网站,用户修改电子邮箱的方法都不一样,如果用户的邮箱停止了服务,那么用户一旦忘记了网站密码,就无法使用电子邮件来重置密码,因此就有可能再也无法登录这个网站了。

  因此,使用雅虎邮箱来注册各个网站服务的用户,虽然雅虎邮箱的停运不会让那些互联网服务账号立刻失效,但是会面临如下两个问题:

  1、无法收到各个网站发送的重要邮件,有些邮件通知可能非常重要,例如和财务支付相关的邮件通知。

  2、无法使用网站的密码找回功能,用户帐号处于随时可能丢失的状态,用户需要牢牢记住各个网站的登录密码。

  为了解决这些不便,用户唯一的办法,只能登录各个互联网服务,找到那些用雅虎邮箱注册的网站账号,一个一个地修改电子邮件帐号,这浪费了用户大量的时间和精力。

使用安全的电子邮件服务

  那么,网络用户有没有办法拥有一个真正“永久”的“终生邮箱”呢?答案是有的,只是需要付出一些费用。

  怎么拥有一个“永久”的不会停止服务的电子邮箱:

  1、注册一个域名,域名注册商尽量选择国外知名的那些注册商,可以看看各大门户网站的域名都是用的哪些注册商;

  2、注册一个腾讯域名邮箱网易域名邮箱的帐号,这些帐号是可以免费注册的,2012年12月前Google Apps(Gmail的域名邮箱)也可以免费注册,可惜现在不行了,只能付费使用;

  3、根据不同的邮箱服务商,配置自己域名的MX记录和其他设置,使其可以正常工作;

  4、使用这个自己域名的邮箱在其他网站注册服务。

  除了域名邮箱之外,很多域名注册商也提供自己的邮件服务,那些设置会简单一些,不过通常域名注册商提供的邮件空间比较少,不能满足用户使用,有些域名注册商如Godaddy支持邮件转发,可以设置将域名邮件转发到另一个信箱,例如Gmail等,然后在Gmail上设置“使用 Gmail从其他电子邮件地址发送邮件”,就可以用Gmail来收发这个域名邮箱了,这种设置会比域名邮箱简单一些。

  使用这种方法,只要用户的域名记住一直续费,这个电子邮件就可以一直使用,便宜的COM域名续费费用大概每年五十元左右。

  万一哪天腾讯邮箱或网易邮箱也关了,修改域名DNS记录就可以将邮箱设置为其他服务商的服务,例如域名注册商自己提供的邮件服务。万一域名注册商也面临关闭(通常可能性很小),还可以迁移域名到另一个域名注册商,也不会导致域名邮箱无法使用。此外,可以选择大的域名注册商如Godaddy,其关闭概率是很低的。

2013年4月18日星期四

中国雅虎邮箱将停止服务

  中国雅虎今天向用户发出通知,中国雅虎邮箱将于今年8月19日停止服务,此后用户的所有邮件和相关帐户设置都将被删除且无法恢复。中国雅虎邮箱的用户可以迁移到阿里云邮箱、Yahoo.com信箱或其他第三方信箱。

  根据中国雅虎的公告,在2013年8月19日前,用户仍可以正常使用原有中国雅虎邮箱。但在此时间之后,若用户没有进行账号转移等操作,原中国雅虎邮箱中的所有邮件和相关的帐户设置都将被删除且无法恢复。

  对于雅虎邮箱的使用体验,从功能上说,雅虎邮箱广告多,速度慢,功能少,Yahoo.com信箱不提供转发、POP3等服务,垃圾邮件的过滤能力差。

  在隐私方面,中国雅虎邮箱具有一辈子也无法抹去的污点,中国雅虎曾向有关部门提供了用户的个人信息,使其得以确认发送电子邮件者的地址及身份,最后作为法庭证据。中国至少有五名网络异议人士因使用中国雅虎的电子邮件服务而被判入狱,包括师涛(10年)、王小宁(10年)、李智(10年)、姜立军(4年)和谭作人(5年)等。

  总的来说,像中国雅虎邮箱这样的服务,关了是件好事,省的祸害用户。

中国雅虎邮箱将停止服务

  以下是中国雅虎关闭邮箱服务公告全文:

  中国雅虎邮箱于2013年4月18日启动整体迁移

  中国雅虎邮箱将于2013年8月19日停止服务。

  为了能继续访问您的邮箱,如果您的中国雅虎邮箱后缀为 @yahoo.com.cn和 @yahoo.cn,您可以注册并绑定一个全新的阿里云邮箱。该阿里云邮箱可以自动保存您中国雅虎邮箱中的历史邮件,并代收取发往您原中国雅虎邮箱的邮件直至2014年12月31日止,详见帮助 .

  您还可以通过中国雅虎邮箱提供的POP服务将您中国雅虎邮箱中的邮件搬迁至Yahoo.com或任何其他第三方电子邮件供应商,详见帮助

  在2013年8月19日前,您仍可以正常使用您原有中国雅虎邮箱。但在此时间之后,若您没有进行如上操作,原中国雅虎邮箱中的所有邮件和相关的帐户设置都将被删除且无法恢复。如需导出联系人信息,请见帮助

  您当前所使用的中国雅虎邮箱的发信功能也将随中国雅虎邮箱的停止服务而停止。但是,如果您注册并绑定一个全新的阿里云邮箱,您将可以继续接收到发往您原中国雅虎邮箱的邮件直至2014年12月31日止。

  在迁移的过程中,阿里云邮箱将会获得部分您的雅虎帐户信息,如果您不希望阿里云拥有这些信息,您可以在2013年8月19日之前删除您的整个中国雅虎帐户(包括雅虎邮箱,个人资料,以及所有其他雅虎品牌的服务)。如何删除帐户,详见帮助。

  中国雅虎邮箱的停止服务不会影响您继续使用雅虎的其他产品及服务。

使用GnuPG(PGP)加密信息及数字签名教程

  PGP (Pretty Good Privacy) 是由 Phil Zimmermann 于 1991 开发的一个用于数据加密和数字签名的程序,由于被广泛应用以至于后来形成一个开放的标准 OpenPGP,而 GnuPG 则是实现了该标准的一个开源免费程序,本文将会简单介绍如何使用 GnuPG 管理钥匙、加密解密文件和电子邮件、数字签名文件和电子邮件等内容。篇幅有点长,不过内容是很简单的,可以一步一步跟着来。@ivarptr

  一、加密和数字签名的简单原理

  首先每个人使用程序生成地球上惟一的一对钥匙,分别称为公钥和私钥。公钥用于加密,私钥用于解密。使用公钥加密过的信息只能由配对的私钥解开。

  加密的过程是:如果A君要发送信息给B君,首先B君得把自己的公钥扔出来,A君得获取B君的公钥后加密信息并发送过去,B君收到(加过密的)信息使用自己的私钥解密就可以还原信息了。

  而数字签名的过程稍微不同,信息是通过普通未加密方式发送信息给对方的,只是在每条信息后面都会附加一坨字符(名曰:签名),这个签名是由程序根据发送者的私钥以及信息内容计算得出,接收者使用发送者的公钥就可以核对信息有无被篡改。

  二、获取并安装 GnuPG

  GnuPG 是一个集钥匙管理、加密解密、数字签名于一身的工具,对于 Linux 系统,一般可以在系统本身的软件源找到 GnuPG,比如对于 ArchLinux 可以使用如下命令安装:

$ sudo pacman -S gnupg

  对于 Windows 系统可以下载免费开源程序包 GPG4Win,建议下载完全版,里面既包含了 GnuPG 命令行工具,又有图形钥匙管理工具 Kleopatra 和支持 GnuPG 的邮件客户端程序 Claws Mail。

  三、生成钥匙对并发布公钥到网上

  下面的讲解是基于命令行的,如果你比较喜欢图形工具,仍然建议先阅读完本章,因为图形工具的操作基本上跟下面的命令一一对应,而使用命令行讲解比较方便和容易理解。

  1、生成钥匙对

$ gpg --gen-key

  使用上面的命令可以生成地球上惟一的一对钥匙对(注:命令行前的钱币符号是提示符,不用输入),运行后会询问你几个问题,首选是选择钥匙对的算法:

Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?

  默认选择 RSA 就可以了,输入1并回车。然后选择钥匙的长度:

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

  默认是 2048 位,直接回车。然后选择钥匙的有效期限:

Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)

  默认是永远有效的,如果你打算过一段时间就换一把新钥匙,可以在此输入期限,比如输入30表示有效期为30天,数字后面可以加上单位,比如30m表示30个月,30y表示30年。如果你不知道这步有什么作用,则直接回车。然后询问你确定吗?果断输入y并回车。

  接下来是填写一些个人信息:

Real name: ivarptr
Email address: ivarptr@126.com
Comment: ivarptr on Twitter

  第1行输入你的名字或者平常喜欢用的网名,比如我的是 ivarptr。
第2行输入你的email地址,比如我上面输入的是 ivarptr@126.com。
第3行输入一行备注,备注的作用是进一步标识自己的身份,比如你在姓名一行输入“小明”,为了让你的朋友更确切地知道是哪个小明,你可以输入“你隔壁家的小明”。

  这三行信息用于产生一个标识(uid),用来标识这个钥匙对,在下面的命令行里,就可以用名字或者email地址来指定这个钥匙对。

  虽然理论上这些信息是可以随意输入,而且也不会有人阻止你这么做,不过当别人拿到你的公钥时可能会搞不清谁对应谁,所以尽量使用别人分辨得清的名字和email地址。信息输入完之后再输入o并回车确定。

  因为 GnuPG 的钥匙(包括公钥和私钥)是保存在本机上的,如果有人或者黑客进入你的计算机把你的私钥盗走了,那么你的身份就有可能被冒充的危险。所以接下来你需要输入一个密码用于保护你的私钥。这个密码最好选择一个稍微复杂一些的。

  接下来就是等待程序生成钥匙对了,这个过程根可能需要几秒到几分钟时间,期间你可以去忙其他的事情。

  2、查看本机钥匙信息

  上一步完成后,可以使用如下命令查看本机上的公钥:

$ gpg --list-keys

  输出的结果跟下面的类似:

/home/ivarptr/.gnupg/pubring.gpg
——————————–
pub 2048R/72E75B05 2013-04-17 [expires: 2015-04-17]
uid ivarptr (ivarptr on Twitter) <ivarptr@126.com>
sub 2048R/74F0F5F9 2013-04-17 [expires: 2015-04-17]

  从中我们可以看到刚才生成的钥匙对的公钥部分,其中:

  • 72E75B05 是这个公钥的id,这个id跟uid都是用于标识这个公钥的,因为uid是用户随便输入的所以会有重复的情况,因此在某些需要明确指定公钥的命令,需要用id而不能用uid表示这个公钥。
  • 2013-04-17 是生成这个公钥的时间,后面括号内的是有效期。

  在实际应用中,因为要发送加密信息给你的朋友就需要对方的公钥,所以在本机上可能会有多个朋友的公钥,但私钥往往只有一个,也就是自己的私钥。使用下面命令可以查看本机上的私钥。

  $ gpg –list-secret-keys

  3、导出公钥

  为了将自己的公钥扔给他人,你需要把公钥导出成为一个文件:

$ gpg -a --output key.public --export UID

  注:你要把其中的 UID 替换成你的名字或者email地址。

  其中参数

  • -a 表示输出文本文件格式。默认输出是二进制格式,因为二进制格式不太方便在网络(比如论坛或者博客)上展示,所以推荐文本格式。
  • –output 指定输出文件的名字,你可以更改为其他名字。
  • –export 表示执行输出公钥操作,后面的 UID 为你要输出的公钥的标识。

  运行之后会在当前文件夹得到一个 key.public 文件,你可以使用文本编辑器或者 cat 命令查看里面的内容,大致如下:

$ cat key.public

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: GnuPG v2.0.19 (GNU/Linux)

…………
…………
—–END PGP PUBLIC KEY BLOCK—–

  公钥导出之后,你可以通过各种方式把它发送给你的朋友,比如email或者聊天工具。而比较方便的是把公钥发布到公钥服务器。

  4、把公钥发布到公钥服务器

  公钥服务器用于储存和发布用户的公钥以便相互交流,这些服务都是免费的,GnuPG 默认的公钥服务器是 keys.gnupg.net,你可以在这里找到更多的服务器。你也可以使用浏览器打开它们的网站,然后把你的公钥复制粘贴上去。当然最直接的是通过命令行:

$ gpg --keyserver keys.gnupg.net --send-key ID

  注:你要把其中的 ID 替换成你公钥的id。

  其中参数:

  • –keyserver 用于指定公钥服务器,没有特殊需求的话是可以省略这个参数的,不过有些 GnuPG 版本可能需要指定这个参数才能正常工作。
  • –send-key 用于指定待发布的公钥的id。

  好了,至此你已经学会生成钥匙对以及发布公钥了。

  四、导入他人的公钥,加密一个文件

  下面我们来做个试验,尝试导入作者的公钥,然后使用该公钥加密一个文件。通过这个试验就可以学会怎样获取他人的公钥并用之加密信息。

  1、在公钥服务器搜索作者的公钥并导入到本机

  使用如下的命令可以搜索到我的公钥:

$ gpg --keyserver keys.gnupg.net --search-key ivarptr

  参数 –search-key 用于指定搜索关键字,可以是uid的名字或者email地址部分。结果大致如下:

gpg: searching for “ivarptr” from hkp server keys.gnupg.net
(1) ivarptr (ivarptr on Twitter) <ivarptr@126.com>
2048 bit RSA key 72E75B05, created: 2013-04-17
Keys 1-1 of 1 for “ivarptr”. Enter number(s), N)ext, or Q)uit >

  如果有重名的情况,这里会列出多条记录。你可以输入n并回车把搜索结果浏览个遍。当你看到id和uid都跟你要找的那个吻合时,输入搜索结果前面显示的数字就可以把相应的公钥下载到本机。如上面的搜索结果,按数字1并回车就可以把我的公钥导入到本机。输入q并回车可退出搜索。

  注:服务 keys.gnupg.net 背后是一组服务器,它们之间的信息同步需要一定的时间,如果你刚刚提交了自己的公钥,可能不会立即搜索就有结果,只要过一段时间(大概1小时)就好了。如果你用的是普通公钥服务器,比如 pgp.mit.edu 则不会有这个问题。

  如果你确切知道要导入的公钥的id,也可以跳过搜索这步而直接使用如下的命令导入:

$ gpg --keyserver keys.gnupg.net --recv-key 72E75B05

  其中 72E75B05 是我公钥的id,如果把它替换成你朋友的公钥id则为导入你朋友的公钥。

  导入公钥还有另一种方法:如果我把公钥文件直接发送了给你,你也可以跳过公钥服务器。下面假设我的公钥文件 key.public 已发送给你,你运行如下命令就可以导入我的公钥了:

$ gpg --import key.public

  2、核对公钥的指纹值并签收公钥

  把对方的公钥导入到本机后,就已经可以用它来加密信息或者用于校验我的数字签名。不过这样每次操作时都会提示公钥不可信,因为虽然你导入了我的公钥,但存在导入冒充者的公钥的可能性。所以你需要进一步跟我核对公钥是否正确,然后签收(sign key)它。

  因为公钥有可能出现冒牌货,所以每个公钥里都加入了指纹值,使用下面命令可以查看指纹值:

$ gpg --fingerprint

  列出的结果应该有一组如下所示:

pub 2048R/72E75B05 2013-04-17 [expires: 2015-04-17]
Key fingerprint = 0D24 0A94 A86C 7B83 3F7C 200E 1CAF 0CB0 72E7 5B05
uid ivarptr (ivarptr on Twitter) <ivarptr@126.com>
sub 2048R/74F0F5F9 2013-04-17 [expires: 2015-04-17]

  其中 “0D24 0A94 A86C 7B83 3F7C 200E 1CAF 0CB0 72E7 5B05” 就是这个公钥的指纹值。你应该通过打电话或者聊天工具等方式询问对方并核对指纹值是否一致,如果吻合的话就说明你取得的是真货了。

  注:因为我不可能公布我的电话 :D 所以如果你看到取回来的公钥指纹值跟我博客这篇文章的一致,就可以当作是真货了。当然如果是实际的朋友,一定要亲口核对的。

  确定取得的公钥是真货之后,使用如下命令对这个公钥进行签收(sign key):

$ gpg --sign-key ivarptr

  运行上面的命令之后它提示你再确认一次指纹值,输入y并按回车确定。

  提示,如果发现获取回来的是冒牌货,可以使用如下的命令删除它:

$ gpg --delete-keys ivarptr

  3、加密一个文件

  使用文本编辑器(比如记事本或者 vim、echo)创建一个名为 message.txt 的文件,里面写上任意一行文字,然后使用如下的命令加密它:

$ gpg -a --output message-ciper.txt -r ivarptr@126.com -e message.txt

  其中参数:

  • -a 表示输出文本文件格式。
  • –output 指定输出(即加密后)的文件名。
  • -r 指定信息的接收者(recipient)公钥的uid,可以是名字也可以是email地址。
  • -e 表示这次要执行的是加密(encrypt)操作。

  执行完毕之后会在当前文件夹产生文件 message-ciper.txt,这个就是被加密之后的文件。

  注:如果你要加密的是一个二进制文件,则可以省略 -a 参数,这样产生的加密文件的体积会小一些。

  小练习:现在你可以用 email 把加密后的文件寄给我,或者把里面的内容复制然后粘贴到我博客的评论里,接下来我会解密然后回复你。如果你希望我也以加密的形式回复你,记得同时告诉我你的公钥 id(以及公钥服务器地址,假如不是用默认服务器的话)。

  4、解密一个文件

  现在假设我已经收到你寄过来的加密文件 message-ciper.txt,使用如下的命令解密:

$ gpg --output message-plain.txt -d message-ciper.txt

  其中参数:

  • –output 指定输出(即解密后)的文件名。
  • -d 表示这次要执行的是解密(decrypt)操作。

  GnuPG 程序会自动使用我的私钥来解密信息,最后得到一个跟原始内容一样的文本文件 message-plain.txt。

  至此,你已经学会使用 GnuPG 加密解密文件了。

  提示1:导入公钥、核对公钥的指纹值、签名公钥这些操作你只需做一次,以后就可以重复多次使用该公钥加密信息并发送给对方。
提示2:如果你想自己体会整个加密和解密过程,可以用自己的公钥加密信息,然后用自己的私钥解密,只需把上面第3步的命令当中的接收者uid(ivarptr@126.com)更改为自己的uid即可。

  五、数字签名一个文件

  下面我会签名一个文件,你可以尝试检验一下这个签名。

  1、数字签名一个文件的方法A

  现在我有一个文本文件 message.txt,使用如下命令即可对它进行数字签名:

$ gpg -a -b message.txt

  其中参数

  • -a 表示输出文本文件格式。
  • -b 表示以生成独立的签名文件的方式进行签名。

  命令执行完毕之后,会在当前文件夹里产生一个 message.txt.asc 的文件,这个文件即签名。现在我应该把原信息文件 message.txt 连同签名文件 message.txt.asc 一起寄给你,然后你使用如下命令检验:

$ gpg --verify message.txt.asc

  如无意外,应该会看到如下两行:
gpg: Signature made Thu 18 Apr 2013 12:35:00 AM CST using RSA key ID 72E75B05
gpg: Good signature from “ivarptr (ivarptr on Twitter) <ivarptr@126.com>”

  其中最重要的是 “Good signature” 字样,表示通过检验,否则表示没通过检验(即意味着原信息的内容被篡改或者原信息不是我发出的)。

  提示:如果你有多个私钥,在签名时需要加上参数 -u 指定私钥的 uid。

  2、数字签名一个文件的方法B

  如果不想生成一个独立的签名文件,则还可以用如下的命令进行签名:

$ gpg -a --clearsign message.txt

  跟方法A不同的地方是用参数 –clearsign 替代了参数 -b。参数 clearsign 表示将签名和原信息合并在一起,并生成一个新文件。

  命令运行后同样会生成一个文件 message.txt.asc,内容如下:

—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1

hello world, my key id is 72E75B05, finger is 0D24 0A94……5B05, check it
out.
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v2.0.19 (GNU/Linux)

iQEcBAEBAgAGBQJRbuXuAAoJEByvDLBy51sFaY8IAKKnXX2JGI51mzYSakqvhNnr
iV2JLvokMkvyDuJQGeNDMim5W7P0/df+G4oO45B9b0iFx6DSQwZGeBjEGCXvCURa
uU2fdEqjaSarlrs0d4R1ihol8rCxkZwBYBBPjcvDkVwoVJJYS0zc3OYzMvWhb8mk
Q72wQ0obX5LedUVrauG9OLkvq9aBKONr6Xlkldd133v3gb/Wzjf71CLYcRoJDpze
2XBSkrGS0UxRp3WixJJK8xyfDfI9VHBaXEndCkgQ+Mpfq9nV5XAm3MKcPjlENq4g
xGywHRpnwpW8N22VE6ZFEUFlXrh5C8hZfGaG/EcT21PeAbZYH8RcnYTbJ+s2nZ4=
=lhd6
—–END PGP SIGNATURE—–

  你可以复制这段文字然后保存到一个文件里,如 abc.txt,然后使用如下命令进行检验:

$ gpg --verify abc.txt

  使用如下命令可以把原始信息提取出来:

$ gpg --output message-original.txt -d abc.txt

  六、邮件加密和数字签名

  如果你只是希望 GnuPG 用于邮件加密和数字签名,上面的命令是可以完全不用的,因为钥匙的管理工作(如生成钥匙对、导出导入、钥匙签名等)都可以使用图形工具完成,比如 KDE 的 Kleopatra 和 Gnome 下的 seahorse。至于邮件内容的加密解密和数字签名以及校验,一般比较完善的邮件客户端工具都内置集成 GnuPG 的功能,比如 Evolution、KMail、Mozilla Thunderbird,谷歌告诉我 Windows 下的 Outlook 和 Live Mail 也支持但我没有试验过,如果不行那么使用 GPG4Win 附带的 Claws Mail 就可以了。下面我以 Evolution 为例简单介绍如何设置。

  其实关键的设置只有一步,就是关联你的 email 帐号和私钥的id/uid。在 Evolution 的帐号属性里,转到 Security 页,在 OpenPGP Key Id 里输入你的私钥id或者uid即可。如下图:

evolution-pgp-setting

  [图1]

  然后在写email时点击菜单的 Options 勾选 OpenPGP 签名或者加密,然后再发送即可。如下图:

evolution-pgp-write
[图2]

  对方收到邮件时,Evolution 会自动检验签名或者自动解密邮件内容。

  小练习:尝试用邮件客户端发送一封签名或者加密过的邮件给我。

  提示1:在签名或者解密时,有可能会弹出一个窗口要求你输入一个密码,这个密码是指保护私钥所设置的密码,也就是生成钥匙对时设置的密码。

  提示2:用网易邮箱收取签过名的邮件时可能会显示检验失败,这是因为网易邮箱会在邮件末尾添加附件的下载地址,相当于更改了邮件的原始内容,所以签名检验失败是肯定的。

  七、GnuPG 更多的使用方法

  请尽量阅读 GnuPG 官方的文档:

  还有一些本文未提到但会用得上的命令:

  文本完,如有问题可以 @ivarptr 或者在评论中留言。谢谢!

  来源:投稿,原文链接