在Windows下同时安装Python2.x和Python3.x

作者:荒原之梦

前言:

Python现在是两个版本共存,Python2.x和Python3.x都同时在更新。但是Python2.x和Python3.x的区别还是很多的(以后我可能会写一篇文章列举一下Python2.x和Python3.x的具体区别)。如果是刚开始学习Python的话,那么使用Python3.x更好,但是目前(2017年10月8日)很多服务(例如SQLMap)依赖的Python环境都是Python2.x才能提供的,为了解决这个问题我们可以同时安装两个版本的python,即把python2.x和python3.x都安装上,在使用过程中根据需要调用不同的Python环境。

操作环境:

Python-2.7.14

Python-3.6.3

Windows10专业版

操作前的准备:

在安装Python2.x和Python3.x之前,我们需要在磁盘根目录下建一个文件夹,命名为“Python”,在Python文件夹下面再建两个文件夹,分别命名为“Python2”和“Python3”。其实这么做不是必须的,只是将Python2.x和Python3.x分别对应安装在这两个路径下会方便我们今后寻找(需要注意的是,Python的安装路径中不允许有空格,如果在你的安装路径中一定要将不同单词分隔开来的话,可以使用大小写字母区分,或者使用下划线“_”。另外,安装路径中最好不要出现中文)。

Python的官网地址:https://www.python.org/

Python官网上提供有Python2.x和Python3.x for Windows的下载。其中Python2.x是以Microsoft Installer(微软格式安装包)的形式提供的,文件后缀为.msi,Python3.x是以.exe可执行程序的形式提供的,安装的第一步都是双击运行。

一、安装Python2.x

双击之后就是按照提示点击就可以了,都是常规的安装方法。唯一需要改动的地方就是变一下安装路径,方便我们下一步的配置Path环境变量。

配置环境变量:

a.Windows上Python Path环境变量配置

此电脑->右键属性->高级系统设置->环境变量->系统变量->Path:

图 1

之后编辑环境变量,将Python2.x的安装目录粘贴上,一路点击确定就完成了Python2.x的Path环境变量配置:

图 2 可以看到Windows10的Path环境变量是分栏显示的
图 3

b.Win/8.1/8/7/XP上Python Path环境变量配置

Win/8.1/8/7/XP配置环境变量的操作都比较类似,而且和在Windows10上的步骤也相似(下面的Path环境变量截图使用的是Windows7):

计算机->右键属性->高级系统设置->环境变量->系统变量->Path:

之后编辑Path环境变量。不过这里需要注意的是,由于Win/8.1/8/7/XP的环境变量并没有像Windows10一样分栏显示,因此再添加Path环境变量时不要忘记用英文分号“;”将新添加的环境变量与原有的环境变量分隔开:

图 4

配置好环境变量后重更新打开DOS窗口(可以用cmd,也可以用powershell,但一定要是配置好环境变量后重新打开的,不能用配置好环境变量之前打开的DOS窗口)输入python即可检查Python是否安装成功:

图 5

二、安装Python3.x

Python3.x已经不需要我们在手动配置环境变量,我们只需要在安装时做一些调整,改默认安装路径到我们刚才建立的Python3文件夹里就可以了。关于如何在电脑里安装Python3.x,可以查看我之前的一篇博文Python基础之Windows下Python3.x环境搭建.

三、区分Python2.x和Python3.x

在Python2.x和Python3.x的安装路径里都有一个名为python.exe的文件(下图所示为Python3.x安装目录里的python.exe):

图 6

为了能根据我们的需求调用不同的Python环境,我们需要在安装目录里把python.exe改名,只改Python2.x和Python3.x的其中一个就可以了(为了运行sqlmap不要把python2.x 的python.exe文件改名成python2.exe,这样做会使sqlmap在调用python2.x的时候显示拒绝访问,直接用原名称python.exe即可)但是卸载时需要把名字改回来,否则会报错,无法卸载。

我把Python3.x的python.exe重命名为python3.exe,Python2.x的python.exe保持不变,这样我在DOS窗口A输入” python3”就调用了Python3.x:

图 7

在另一个DOS窗口B(不能和刚才DOS窗口A是一个窗口)输入python就调用了Python2.x:

图 8

晚秋如是说

作者:荒原之梦

又是一个乍寒还暖的晚秋啊!
几乎每年的此时都会心生一种莫名的满足——衣服越穿越厚,树叶越扫越多。这本是一个万木萧条的季节,然而人们没有感觉到的是,那些树叶不过是变了一种颜色,换了一个位置而已。
晚秋的人更多了几分温柔,没有夏季里的焦躁,没有冬季里的呆木,也没有春季里的昏昏沉沉。以前别人问我喜欢哪个季节,我总是说喜欢春天,但是我越发地发现,其实秋天也是很吸引人的。
走在小路上,故意踩在落叶中,每走一步都会有无数的叶子跟随着你的脚步翩翩起舞,这该是怎样的一份爱戴啊。秋天往往会唤起人们的悲伤,但是哪个季节不会有悲伤呢?“多情自古伤离别,更那堪,冷落清秋节!”,伤秋怀秋似乎已经成了古人的传统,只能说可能是因为古人的业余消遣方式没有今天这样五花八门吧,否则也不会有闲情对着一轮月亮吟唱了几千年。
其实很早很早的以前我就知道静静地坚持做一件事是很重要的一种修养,但是喔对这种修养的认同程度只是停留在”知道“罢了。这几天更加深刻地感受到坚持做一件事有多么重要——这种重要更多的是内在的重要。曾经我也注册过博客,坚持了一个星期,每天都写,但是那会儿想的是如何能增加人气,我更关心的是我的博客每天的访问量。完全可以料想,那个博客没有坚持很长时间就不更新了。今天,现在,当我对着面前的这个方方正正的编辑器写下这些文字的时候,我更注重的是记录我的想法,而不是浏览量,也许秋天真的能让人静心吧。
每当看到哪个博客已经写了十多年就会新生一丝丝敬意,能在这么长的时间里不换账号本身就代表了一种坚持。这些博主走在路上,没有多少人能直接看出来谁写了多少篇文章了,但是这些博主的心里自有自己的一方天地——心里的美何必要让全世界都知道,越伟大的人就会有越多别人无法触碰的私人珍藏。
我现在在想,要不要来个应试作文一样的结尾,总结一下全文号然后去睡觉呢?当然,我只是想想而已,我是一个很难学会东西的人,从小学就开始学的应试作文写作技巧,现在的我是一点也想不起来了。也许是真的记忆力差,如果非让我找个借口的话,我会诚实一点的说”这是选择性遗忘“。但是”遗忘“真是一件好事啊,有些东西忘掉了就真的没有了,就像秋天里落下的叶子,当他们再回到树上时,又是一个新的世界了。

眼泪从不悲伤,就像滴落在水上的阳光

作者:荒原之梦
许久许久不发博文了,许久许久没有像理想中的样子一样生活了,至于理想中的样子是什么样的,反而是在我上初中那会最清楚。高中是一个将人们同质化的过程,看似风平浪静,其实每一天都在失去自我。那是一段不该回忆的过往啊!
许久许久不发博文了,就像当初看到海子的那首诗“面朝大海,春暖花开”——本以为未来的一切都可以由自己掌控,其实这个过程十分艰难:

“从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开
从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人
给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福

我只愿面朝大海,春暖花开”

——海子
不知道海子是不是实现了周游世界的梦想,只是有时候,即便你周游了世界又如何?世界依旧是世界,人依然是人。不知道岁月是不是会消化了人的渴望,但有一点是我确信的——没有渴望,就没有向往。
世界总在我们不经意间突然长大,那一天天不变的生活突然就成了过去,我们熟悉的一切突然就没了踪迹。我们曾经懊恼的事,讨厌的和喜欢的人,突然之间就想不起,也见不到了。
宇宙的尽头一定是寂静吧,那是万物对真理的表达。我的脚步每一次落下仿佛都在沿着一个既定的路线行走,我不知道我是否是我,我不知道这世界是不是存在我们所认为的你我他。
学习的确是挺枯燥的,因为那是别人的思想在占领我们自己的头脑,唯一的反抗就是建立起自己的信仰。我不想被抹去我之所以为我的标志,因为我觉得那是最值得我骄傲的旗帜。所有的妥协,所有的服从,所有的容忍都是和这个世界的游戏。我不知道世界是否本该如此,我只知道大部分人只是活出了他们本来的模样。
何苦强迫自己,何必艳羡他人。你说与世无争,你说不思进取,你说生而赎罪。

如果石头不愿说话

作者:荒原之梦

空气里流动着露水淡淡的味道,甘甜的清凉唤醒了我身体里每一只细胞。

我刚刚揉了揉惺忪的睡眼,这世界便迫不及待地把自己的美,调皮地涂抹在了我的瞳孔上。我穿上昨晚挂在一小堆篝火旁的运动服,叠好睡袋,收起帐篷,开始准备我今天的早餐。

我从口袋里掏出我的木梗火柴,捏住火柴尾部,火柴头在火柴盒侧面迅速地擦过,一团温暖的火焰在北方深秋的清晨里,手舞足蹈的绽放开来。

我用另一只手小心地护送着这团刚刚诞生于人世间的火焰,轻轻地放在了一团干草里,随后,一缕缕淡灰色的烟便从干草团中钻出来了,更多开始萌芽的火焰也跟着那缕缕青烟探出头来。我在铁质的饭盒里倒上一些从附近山涧找到的泉水,还有八只昨天傍晚在溪水里捞到的河虾,当然,我还记得放上了一小撮儿盐。

阳光怯生生地慢慢靠近我的饭盒,篝火炙热的火焰不停地拍打隔离着食物的铁皮,这火与铁的简陋雕塑,仿佛是工业革命时期的钢铁工人在赤红的钢水与惨淡的生计之间,艰难,但却顽强的抗争。

水沸腾了,河虾虾也应该煮熟了。

我捡来一根小树枝,站在篝火旁,躬下身,捞起了两只触须互相缠绕在一起河虾,蘸了一些豆沙,卷在一张烙饼里。

我走了几步,找到一块还算光滑的石头,面对着东方的朝霞坐下,但我的注意力却首先落在了手里捧着的食物之上——我张大了嘴,把卷着两只鲜美的河虾的烙饼向着阳光的方向,神圣的举起——深深地咬了一口——没有什么味道,只是满足了饥饿的肠胃对食物的向往。

太阳从山的那边的那边渐渐升起,把空气融化成了橘黄色的液体。

我骑上蒙满灰尘的单车,眺望着彩霞,路面的碎石互相碰撞出清脆的声音,和着齿轮相互咬合的尖锐嘶嘶声,仿佛一曲怀旧的民谣——在清晨的天际间哼唱——一座座山峰在我身后退却,我带领着天空中几粒熹微的星儿——向前奔跑!

我不知道要去往哪里,我的目的地只有脚下的路才知道。我也不记得我是何日开始出发,我出发的地方有一座山,伫立成了永恒。

轴承里光滑明亮的钢珠在仅有一丝缝隙的黑暗中映照着彼此的容颜,相互挤压着,滚动着——

并不是所有的车辙都会留下骄傲的压痕,也不是所有的脚步都能在大地上创造出独一无二的印记。

假如可以,我只愿默默地去尝试——

假如可以,我只愿,把脚步留在天际,把脚印,烙在心里。

酒酣明月空对影,散发乘云自销愁——李白

     作者:荒原之梦
       一位诗人,白衣飘飘,放声吟唱着“天生我材必有用,千金散尽还复来。”从遥远的西北走来;
      一位诗人,美酒盈樽,挥笔狂书着“呼儿将出换美酒,与尔同消万古愁。”从盛世唐朝走来——
      他,就是中国空前繁盛的大唐王朝孕育出来的天才诗人,李太白。
      李白的一生是狂傲不羁至近乎疯癫的一生,似乎只有包含了诗酒明月的仙境才是李白的栖身之地。
      李白饮了美酒,却饮不尽忧愁,是啊“但愿长醉不复醒”,古往今来,共观皓月,虽说“今月曾经照古人”,可是谁能体会到那力透纸背的字句之后,那颗无助孤独的心?“举头望明月,低头思故乡”,少年出蜀,千里远游,那位当年意气风发的翩翩公子在历尽沉浮之后,终成天涯倦客?试问,英雄是否老矣。
      不!“长风破浪会有时,直挂云帆济沧海”!田园凄静的落日余晖中,不会有李白;秋风古道的瘦马上,也不会有李白;失意绝望的汨罗江中,更不会有李白!李白,代表了那个时代,那个无所畏惧,无可匹敌的时代——
      李白,他是西北大漠上狂奔的脱缰野马!他,只属于自己的王国!
      然而,也许一切都是虚无,没有铁马金戈,没有成仙驾鹤。唯一真实的,只有酒中明月,纸上狼毫——
      “越王勾践破吴归,义士还家尽锦衣”,梦中挑灯看剑,谁分麾下炙?那千里沙场的茫茫黄沙之中,到哪里去找他李白的铁骨铮铮?
      “欲渡黄河冰塞川,将登太行雪满山”,“忽复乘舟梦日边”,龙门怎越?那万里江山的欣欣向荣之中,到哪里去找他李白的鬼斧神工?
      空怀满腹才略,却无路请缨,只能将万丈豪情,生生塞进一句句诗中——
      “抽刀断水水更流,举杯消愁愁更愁。
       人生在世不称意,明朝散发弄扁舟。”
      我不知道“酒仙”李白何以被冠上了”诗仙“的名号,李白的人生理想绝不是遣词造句,舞笔赋诗。但是,他一生都未如愿,谁让他为了开心颜而“安能折腰事权贵”呢?
      “弃我去者昨日之日不可留,
      乱我心者今日之日多烦忧。”
      留不住昨日,挡不住忧愁,岁月如水空逝,而功业未酬。李白没有淡泊到不想美名传千古,泛黄的青史如何才能留那么一页赞颂他的传奇?
      “俱怀逸兴壮思飞,欲上青天揽明月”,可是,这状思何以飞?这明月何以揽?也许连李白自己也没有答案。
      我们只知道,千年虽逝,盛唐之音依然回荡在神州大地,依旧铿锵有力!
后记:古诗是一道淳朴厚重的风景,如同北方的黄土泥墙一样浸染了千年的冰霜,又如江南的粉黛青砖,荡漾着清风拂面的凉爽。平仄间是一曲曲人生百味,抑扬里饱含着一幕幕血泪长歌。

五万三千公里的夜

作者:荒原之梦
星空坠向大海
在山峰的最高处摩擦着火花
如果闪电沉入海底
那便是一株花的命运
 |
也许是五万三千公里的遥远
阻隔了曾经嘱托我的视线
那绚丽而恬静的梦啊
在熠熠生辉的夜中
那么耀眼
 |
这是一根灯管儿的冬眠
一场华丽的谢幕
一段今生此世的缠绵
 |
脚印在泥土中枯萎
每一次站立
都是一样的胜利
如同炽热的风飘洒着凄寒的雨
 |
我的手掌
和玻璃杯
在宇宙的第一缕阳光中同时升起
风雨蹉跎了世事
世事洗尽了风雨
 |
又是一轮既定的重生
在海的这头
山的那边
 |
或许没有所谓吧
没有名字
也没有色彩
 |
我用线条勾勒了正在勾勒线条的我
呼吸中喘息着呼吸的喘息

Python基础之Windows下Python3.x环境搭建

作者:荒原之梦

前言:本文介绍使用Python3.x搭建Python环境,文章最后将使用Windows自带的cmd写一个简单的Python程序。

一、下载Python环境安装包

在https:/www.python.org/下载Python3.x环境安装包。

二、安装

Python3.x的版本已经支持在安装时自动添加到Path环境变量中去了,只需要在安装时打上勾就可以。

图 1

默认安装路径是:C:\Users\windows7\AppData\Local\Programs\Python\Python35-32

图 2

安装完成后可以使用python命令在cmd中测试一下,如下的返回结果说明安装成功:

图 3

我们可以输入python(‘saxa’)写第一个python程序:

图 4

在Linux上使用PGP签名验证文件完整性

前言:文件在下载及存储过程中可能由于传输错误、硬件故障、文件系统错误等网络、硬件和软件方面的原因导致文件损坏,也可能在传输过程中受到攻击(如“中间人攻击”)导致下载的文件被篡改或者下载到了其它非原始文件。所以,在使用一个文件之前(如安装一个软件或操作系统)最好先对文件进行完整性(或者说“原始性”)的检验。常用的文件校验方法有SHA、MD5、CRC和PGP签名等。本文主要阐述一下在Linux上使用PGP证书校验文件完整性的操作步骤。

一、下载提供有PGP证书的文件

这里我们下载的是VeraCrypt(下载地址:https://veracrypt.codeplex.com/wikipage?title=Downloads#Title)。我们可以看到,每个文件后面都提供有对应的PGP Signature,下载时我们要把文件和文件对应的PGP Signature都下载下来放到一个文件夹里。

图 1

注:下面的操作步骤使用Ubuntu进行演示。需要注意的是,在Ubuntu中不能校验Windows下使用的文件对应的PGP数字签名。如图:

图 2

二、在文件和文件PGP签名所在的文件夹中打开终端

图 3

三、输入gpg -–verify PGP签名文件名

如我这里的PGP签名文件名是“veracrypt-1.21-setup.tar.bz2.sig”(签名文件一般以.sig或.asc结尾),所以我输入的命令就是:

gpg –verify veracrypt-1.21-setup.tar.bz2.sig

回车执行后如下图所示。这一步操作的目的主要是为了获取从公钥服务器上下载公钥的“钥匙号”,如图中的钥匙号为“54DDD393”。

图 4

但是,在上图中我们可以看到“完好的签名”这一提示,这表明PGP校验已经完成(“gpg -–verify PGP证书文件名”这一命令本身就可以在已经导入公钥的前提下直接校验文件完整性,但是在没有导入公钥时运行这一命令可以使用得到的钥匙号去公钥服务器上下载公钥)。这是因为我之前已经进行过一次检验,公钥已经导入到了本地,下面我们把本地公钥删除,重新进行一次校验。我们可以使用“gpg -k”命令查看当前系统中的公钥:

图 5

现在可以知道,公钥pubring.gpg在一个名为“gnupg”的隐藏文件夹里,我们进到这个文件夹里,用rm命令将它删除:

图 6

然后再执行“gpg -–verify PGP证书文件名”:

图 7

这次的运行后仍得到了钥匙号,但是没有出现“完好的签名”这样的提示,而是“无法检查签名”,这说明本地此时并没有可以用于检验签名的公钥。

注:在这里我们可以看到,我们要验证的是PGP签名,使用的却是“gpg”命令,关于PGP和GPG的更多内容可以查看我的另一篇博文http://blog.csdn.net/wy_bk/article/details/75330196

四、输入gpg –keyserver hkp://pgp.mit.edu –recv-keys 钥匙号

图 8

五、输入gpg -–verify PGP证书文件名

图 9

至此,我们看到了“完好的签名”这样的提示,这说明文件本身基本可以保证是完整的。

注:上一步出现了警告“没有找到任何绝对信任的秘钥”,这一步操作也有类似的警告“没有证据表明这个签名属于他所声称的持有者”。也就是说,秘钥本身也是可以被伪造的,PGP签名只是检测文件是否完整的一个参考。PGP签名的原理就是使用非对称秘钥加密技术和数字摘要技术产生一段只有文件的原始发布者才能产生的数字串。我们对文件进行PGP签名校验,就是要使用公钥解密文件的原始发布者使用私钥加密的签名,核对上述中的“数字串”是否和原来一致。为了方便获取公钥,人们一般把公钥上传到公钥服务器中。有时候人们为了防止PGP签名本身被伪造,还提供了SHA256用于对PGP签名文件本身的完整性进行检测。

附:PGP公钥服务器列表:

  • http://keyserver.ubuntu.com/
  • keys.gnupg.net
  • HKP://subkeys.pgp.net
  • HKP://pgp.mit.edu
  • HKP://pool.sks-keyservers.net
  • HKP://zimmermann.mayfirst.org这个网站不断统计着几乎所有公钥服务器上的公钥数目https://sks-keyservers.net/status/,如图:
    图 10

    后记:其实我一直觉得Linux操作系统很难使用,一方面在Windows上常使用的软件很少有支持Linux的,另一方面使用Linux时总会遇到各种障碍。当我学会在Linux上使用PGP证书校验文件完整性之前,我对Linux优势的了解仅仅是占用内存小且开源免费,自从实际操作了PGP证书校验文件我才真正开始感觉到了Linux在处理一些专业任务上的便捷性。

Ubuntu软件中心的完全启用

作者:荒原之梦

前言:新安装的Ubuntu英文版如果不做配置是无法使用Ubuntu软件中心下载或安装软件的,本文就简单介绍一下安装完Ubuntu后该做哪些配置才能完全启用Ubuntu软件中心。

安装完Ubuntu后我们要对整个系统做一次更新,补充必要的依赖关系。如果不做更新,直接从网上下载安装包安装时,就会出现问题。比如我们下载一个deb安装包,双击运行会打开Ubuntu软件中心,但是当我们点击“安装”按钮后,安装进度条会停着一直不动,如果在终端使用命令进行安装就会显示缺少该软件的依赖关系(但并不是在没有更新系统前安装所有软件都会出现缺少依赖关系的错误,一般功能比较少的软件不会报错,功能比较多,和系统联系更加紧密的软件更容易出现依赖关系错误)。其实更新系统只需要两条命令,分别执行如下两条命令即可:

sudo apt update
sudo update-manager -c -d

执行这两条命令需要一段时间,期间最好不要使用浏览器等其他软件,否则在更新到该软件时系统会发出提示,请求关闭该软件才能完成对该软件的更新。命令执行完毕后需要重启系统,之后就可以使用Ubuntu软件中心下载或安装软件了,而且安装时也可以全程使用图形化界面。

需要注意的是上述两条命令都需要在root权限下执行,也就是要在开头加上“sudo”,回车执行第一条命令后会要求输入root密码(Ubuntu的root密码默认是和开机密码一致的),执行第二条命令时一般不需要再次输入root密码。

电子邮件加密技术初探(20170718-20170720探索日志)

作者:荒原之梦

前言:邮件加密一直是人们十分关心的问题。在我们还只能使用信纸进行通讯的时代,人们就发明了信封和火漆来防止信件被偷窥。在互联网时代,我们的信息安全面临着越来越多的挑战,除了需要国家出台相应的法律(我国已于2016年06月01日起正式实施中华人民共和国网络安全法)来保护我们个人的信息安全之外,还需要从我们自身做起才能有效的保护个人信息,防止被非法获取。当然,邮件加密绝不仅仅是设置更加复杂的密码,邮件传输信道的加密和邮件内容的加密以及我们自身对各种秘钥的管理——各个环节都需要我们的关注。这几天我主要了解了电子邮件加密的相关技术,下面列举如下,择日分类详述。

一、邮件加密技术基础

1.HTTPS协议

HTTPS=HTTP+SSL/TLS。这里需要明白的是HTTP,SSL,TLS的具体含义以及在实际使用过程中如何将信息进行加密解密。简单的讲,HTTPS协议就是将在网络中传输的数据进行加密,使得在服务器端和客户端之间传输的数据不再是明文数据。

注:这里补充一点:我们必须分清楚“邮件通信加密”和“邮件内容加密”。上述中提到的SSL指的是建立一条加密链路以加密邮件通讯,其实这个链路中传输的邮件内容是没有被SSL加密的。而下面将要提到的PGP加密指的是邮件内容的加密。

2.RSA公钥加密。

RSA公钥加密算法基于一个简单的事实,就是将两个大质数相乘很容易,但是想要在不知情的情况下根据结果找出是由哪两个数相乘得到的该结果却不容易,至少在当今一段时间和过去想要暴力破解使用了长秘钥的RSA加密信息是相当困难的。

3.数字签名。

数字签名的应用主要是为了证明信息的真实性,例如被加密的信息其实也可能被修改。正如我们在网上下载软件或者其他文件后通常会测试一下哈希值一样,目的之一就是为了排除我们收到的是一个被修改过的文件的可能性。

4.PGP邮件加密。

GnuPG是应用了PGP协议的开源加密软件,GnuPG的官网为https://gnupg.org/。GnuPG是GNU将OpenPGP(即PGP)中的专利算法去除后实现的开源软件。GnuPG整合了RSA公钥加密和数字签名技术,可以运行在Windows或Linux系统中,可以用来加密文件或者邮件。其实很多邮箱客户端都集成了GnuPG,例如在linux中可以在Evolution和Mozilla Thunderbird这两个邮箱客户端中使用GnuPG,在Windows(或Linux)中可以使用Kmail(Kmail是kontact的邮箱组件,网址https://userbase.kde.org/Kontact/zh-cn

图 1

在Windows中还可以使用Gpg4win(官网https://www.gpg4win.org/)来发送基于PGP加密的邮件。

图 2

另外Outlook邮箱客户端也有GnuPG的组件。

二、邮件加密的实现

想要在网络上进行加密通讯其实需要一个系统的工作,不仅需要多种信息加密工具的配合使用确保信息不被泄露以及不被篡改,还有有关人员身份的隐匿,而且在很大程度上还需要对“人”本身进行有效的管理,特别是在公司等组织内部,由于所需保密的信息可能涉及多人,此时对人的管理就显得尤为重要。

下面我就从技术的角度列举一下使用加密电子邮件的一些方法,下面的有些方法可以组合使用以提高保密强度:

1.使用电子邮件服务商提供的加密电子邮件服务

1.1 ProtonMail

ProtonMail官网:https://protonmail.com/

根据ProtonMail官网上的介绍,ProtonMail使用了End-to-End端到端加密技术,而且ProtonMail开放了自己的源代码。并且,注册ProtonMail是不需要提供手机号的,其总部和邮件服务器都位于瑞士。

图 3

1.2 Lavabit

Lavabit官网:https://lavabit.com/

Lavabit曾因棱镜门事件被关闭,不过在2017年Lavabit重新上线。

图 4

2.使用电子邮封加密电子邮件

电子邮封(百度百科:电子邮封)是一种比较方便使用的电子邮件加密软件。直观的讲,电子邮封就是给电子邮件加上了一个信封。MailCloak是一款电子邮封软件,可以实现对邮件内容的加密,有客户端版,火狐版等。MailCloak由GWEBS公司提供,此外GWEBS还提供有其他保障数据安全的软件。GWEBS官网:http://www.gwebs.com/

图 5

3.使用PGP加密邮件

前面已经提到多种实现了GnuPG加密的邮件客户端,使用GnuPG是一种较为可靠的邮件加密方法(从没有绝对的信息安全可言),但是这些软件的使用(如果你想发挥它们的最大功能的话)比较复杂,我将在另一篇文章里详细介绍安装和配置Gpg4win并使用Gpg4win发送加密文件,之后在另一台电脑上解密加密邮件的过程。

以上三种邮件加密方法需要收发信件的双方都使用相应的加密措施,否则有可能造成无法解密信息或者信息的泄露。

警示:所有信息加密技术都应该用于维护自身的合法利益,避免个人信息被别人非法获取后对我们自身造成伤害。所以,千万不要尝试使用信息加密技术做危害他人和社会的事情,我们必须在法律允许的范围内行事,不然再强大的加密技术也不可能让你做到永远高枕无忧。

2017/06/28探索日志

作者:荒原之梦

前言:今天主要还是在想办法解决我搭建的网站打不开PHP的问题,我一直想尽快解决这个问题,但是在今天下午的时候我决定先不着急解决这个问题,先着手了解与之相关的数据库和服务器配置,采取迂回战术,等我弄懂了相关技术再去解决我的网站的问题应该会比盲目的按照网上的解决办法尝试会有更深刻的理解。下面我就来总结一下今天到现在为止我的探索进展。

1.服务器

昨天老师还批评我们说都不喜欢用Linux系统,就算用也是用图形化界面。其实图形化界面确实很好看,在某些时候操作也是很方便的,我觉得如果是桌面版的操作系统,无论Windows还是linux,用图形化界面还是比较方便于日常使用的,因为桌面版主要是服务于个人办公和娱乐的,那些办公软件和媒体播放软件也只有在图形化界面里可以用吧——我不知道使用Shell的时候(不是Shell模拟器)能不能播放视频~~

但是吧,在使用服http://zhaokaifeng.com/wordpress/wp-admin/post-new.php务器操作系统时还是乖乖的用命令行吧,首先服务器,例如通常的web服务器,都是用来托管文件的,GUI界面就显得比较多余了,还会拖慢系统的运行速度,占用系统资源,所以还不如用命令行。此外,同样一个名字的发行版Linux,在系统内核上虽然是一样的,但是在具体的软件配置上还是有区别的,比如在Linux服务器系统上,Apache、MySQL、php这些都是标配。当然,桌面版操作系统也可以安装这些。

在众多Linux系统里Ubuntu应该是一个比较适合用作日常办公娱乐使用的操作系统了,同时也是一个中国本土化比较全面的操作系统,支持很多中文软件。在Ubuntu的中文官网优麒麟上有两大版本的ubuntu操作系统,分别是发行版(由商业公司开发和维护)和社区版(由Linux志愿者开发和维护)。

图 1

而且在发行版和社区版的下面还有更细致的分类——分为了桌面版和服务器版。

图 2

我在云服务器里选择的是CentOS作为操作系统,因为CentOS比较适合用在服务器上,但是我对CentOS还不是很熟悉,也没听说过CentOS有服务器版的。找过资料才知道,CentOS在安装时可以选择安装桌面版还是服务器版。其实用过Ubuntu就知道CentOS确实是一个更适合用在服务器上的操作系统,相比于Ubuntu里有软件中心等方便日常使用的软件,CentOS就显得很“冷清”了。

下图是CentOS的GUI桌面:

图 3

下图是Ubuntu的GUI桌面:

图 4

2.下一步计划

下一步我准备在Windows和CentOS上建一个用本地电脑作为服务器的网站,主要目的是为了熟悉建站的整个流程,然后再去云服务器上建网站。而且学会在本地建站也能为我今后做安全相关试验时搭建实验环境打下一个基础。

Java基础小知识1——分别使用字节流和字符流复制文件

作者:荒原之梦

前言:在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的。

1.使用字节流缓冲区复制文件

示例代码如下:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

public class Test2 {
public static void main(String[] args) throws Exception{
  InputStream in = new FileInputStream("bbb\\aaa.txt");
  FileOutputStream out =new FileOutputStream("ccc\\aaa.txt");
  int len;
  while ((len=in.read())!=-1){
    out.write(len);
  }
  in.close();
  out.close();
}
}

运行完代码,刷新目录后,ccc文件夹下就会出现从bbb文件夹里复制过来的文件aaa.txt

图 1

2.使用字符流复制文件

示例代码如下:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOError;

public class Test3 {
  public static void main(String[] args) throws Exception{
    FileReader rea = new FileReader("bbb\\aaaaaa.txt");
    FileWriter wri = new FileWriter("ccc\\aaaaaa.txt");
    int a;
    while((a=rea.read())!=-1){
      wri.write(a);
    }
    rea.close();
    wri.close();
  }
}

运行完代码,刷新目录后,ccc文件夹下就会出现从bbb文件夹里复制过来的文件aaaaaa.txt

图 2

在单用户模式下修改CentOS的root密码

作者:荒原之梦

前言:我们在使用CentOS的过程中可能会发生忘记root用户密码的情况,本文就从应用的角度简单介绍一下如何在单用户模式下修改root用户的密码。

  • 开启CentOS,进入系统启动菜单

将光标停留在系统开机时默认的启动项(如下图绿色区域所示),然后根据蓝色区域的提示内容“按下e键编辑已经选中的项目”的提示按下e键,进行下一步操作。

图 1
  • 修改操作的前期准备

按下e键后我们可能无法看到我们需要编辑的区域,这是因为在较新版本的CentOS中这个编辑页面不是一次显示完的,我们可以看到两个箭头分别指向上和下,使用上下方向键向下翻就会找到我们需要编辑的位置了。

图 2

翻到下面后就是这个页面,我们要编辑的内容就是蓝色区域所示的两个位置。我们要把其中的” ro”替换成” rw init=/bin/sh”,并把rhgb quiet删除。

图 3

修改后的页面如下:

图 4

其中rw后面的\是修改时系统自动加上去的,表示换行的意思。

  • 开始修改密码的相关操作

按上述步骤修改完成后,按Ctrl+X组合键启动系统。输入passwd并两次输入新的root密码,之后输入“touch /.autorelabel”(用于selinux重启后更新label)和“exec /sbin/init”(正常启动init进程,重启),然后回车。

图 5

等待系统完成更新后就可以使用修改后的密码进入系统:

图 6

公告

出于学习和研究之目的,根据计划,本人将在本站所在服务器上进行一系列部署更新与更改工作,届时本站可能出现短时或长时间的访问异常。具体公告如下:

1.优化服务器磁盘数据存储情况,备份重要数据。

2.优化网站页面布局。

3.开展有关于电子邮件服务器配置的实践性工作。

4.配置服务于本人个人的有关服务。

5.本人保证所有将要在本站服务器上进行的操作都将以合法和公开的方式进行,所有操作都不会对网络中非本人所拥有的服务器和其他电子计算机造成危害。具体工作内容将随着本人工作的开展在不损害本人合法利益的前提下逐步公告。

6.以上工作将于2017年07月30日下午19点整陆续开展,特此公告。

荒原之梦

2017年07月30日