IFTTT

###简介

IFTTT类似于一个自定义的触发器,和 Google Now,有异曲同工之妙,Google Now能够实现的,是基于使用 Google 的数据,而 IFTTT 则是使用这个互联网的数据。稍微举几个例子, IFTTT 能够实现的神奇功能,原先可能需要自己操作很多才能实现的功能,IFTTT可以自动化的完成。

比如, Gmail 收到一封带附件的邮件,你可能的操作就是查看邮件内容,下载附件,修改附件,然后回复邮件,而通过 IFTTT ,你可以设定一个触发,收到一份携带附件的邮件,自动将附件保存到 Dropbox ,这样当你查看邮件内容时, 可免去下载过程,直接修改本地文件,然后回复即可。https://ifttt.com/recipes/98759-save-all-your-gmail-attachments-to-dropbox

如果有人使用 Kindle ,会用 @Kindle.com 邮箱吧, 那我可以做一个触发,当我把文件保存到Dropbox 下的 kindle 文件夹中的时候,自动将文件 通过 Gmail 发送到 @kindle.com 。

还有我想保存我加心的 Instagram 图片到 Dropbox ,我想同步Blogger等等,只要你能想到,只要这个平台够开放,IFTTT就能实现。

###一些好用的recipes

Share broadcasted articles from Inoreader to Blogger https://ifttt.com/recipes/299846-share-broadcasted-articles-from-inoreader-to-blogger

Kindle标注内容分享到Goodreads自动同步到Evernote https://ifttt.com/recipes/278505-kindle-to-goodreads-to-evernote

Instagrams 加心的图片自动保存到 Dropbox https://ifttt.com/recipes/14475-save-the-instagrams-you-like-to-a-dropbox-folder

Instagram 点赞照片自动存入Google Drive https://ifttt.com/recipes/301649-save-the-photos-you-liked-on-instagram-to-google-drive

保存新浪微博到 Google Drive spreadsheet https://ifttt.com/recipes/197676-track-all-posts-you-publish-on-sina-weibo-in-a-google-spreadsheet

自动同步特定 #hashtag 的推文到新浪微博 https://ifttt.com/recipes/301676-share-your-tweets-with-specific-hashtag-to-sina-weibo

当然官方也提供了很多,可以视自己的需求来添加自己的recipes https://ifttt.com/recipes

###总结

可能是受 InoReader 的影响,我在使用 InoReader 的时候,产生了自动化的想法,可以依靠IFTTT 来实现, 比如 InoReader 的广播文章自动发布到Blogger, 因为 InoReader 集成了 Pinterest 所以我可以很方便的将文章图片保存到 Pinterest ,因此我有产生了一个想法,将 Pinterest 中的图片保存到云盘link。 InoReader 中有些文章,我加上 tag Evernote,我可以自动将这些文章备份到 Evernote。 当然作为一个深度 InoReader 用户,可能觉得会很方便。然而脱离了 InoReader , 其实 IFTTT 的应用场景也并不是那么的多。

当然应用的多少和平台的开放程度也密不可分,比如上面提到的 Pinterest ,它并不提供直接的 API ,而只是我们拿到了它的 RSS ,所以可以用来做一个触发器。 而打开 InoReader 的 Trigger 可以发现慢慢一屏幕可以作为触发器。

###产生的小火花

如何将网页文件保存到云盘?

网页上右击直接将文件保存到云盘 Google Drive , Dropbox 中 Chrome插件 Balloon for Chrome https://chrome.google.com/webstore/detail/kbmligehjhghebleanjcmenomghmcohn

原文地址:https://docs.google.com/document/d/1GQIkkM_maAolbBp_hrJeDFjbsRvS5Il3s_eCxsj6CII/edit?usp=sharing

本文的产生感谢吴校杰Harry Xu张燕


2015-06-23 ifttt

Windows下查看占用端口程序

今天启动shadowsocks,突然发现本地1080端口被占用,原本是只要改一下配置中的本地端口即可,但是不想修改Chrome和Proxifier中的配置,所以就找了一下Windows查找下端口占用的方法。

##查看所有端口占用情况

cmd命令行下

netstat -ano

查看所有端口占用情况

##查看特定端口占用情况

cmd命令行下

netstat -ano|findstr "1080"

查看特定本地1080端口占用

以上两个命令中最后一列就是PID,程序对应进程ID,知道了进程ID,在任务管理器中杀死该进程即可,而在我的情况下就是NVIDIA的一个进程占用了1080端口,杀死该进程重启shadowsocks即可。

##查看PID对应进程

用以下命令查看PID对应进程

tasklist|findstr "5376"

查看PID为5376的进程名字,在我重启了shadowsocks之后就显示了以下

shadowsocks.exe         5376 Console            1     28,020 K

##附录

shadowsocks报错内容

Error: listen EACCES

2015-06-13 Windows

CentOS 安装文件区别

##下载地址

  • 官网:http://www.centos.org/
  • 下载:http://www.centoscn.com/CentosSoft/iso/
  • 阿里云开源镜像站: http://mirrors.aliyun.com/
  • 搜狐开源镜像站:http://mirrors.sohu.com/
  • 网易开源镜像站:http://mirrors.163.com/

i386是给32位机器使用的,而x86_64适用于64位机器。前者只能使用32位软件,后者可以兼用32位软件,这就是两者区别。如果你的服务器内存超4GB,强烈建议使用64位版本;如果只在虚拟机器里安装学习,那么32位就行了,也就是选择i386版本。如果想做服务器,则建议选64位。

http://mirrors.pubyun.com/centos/6.6/isos/

##版本区别

我们看到共分为LiveCD、LiveDVD、bin-DVD、bin-DVD和netinstall五种,分别作下介绍:

  1. BinDVD版:这就是普通安装版,需安装到计算机硬盘才能用,bin版也是最完整的版本,一般都比较大,因为包含了大量的常用软件,安装时无需再在线下载。如果是安装到虚拟机里学习使用的,选它没错。

     DVD1:基本系统+部分软件包。
     DVD2:更多的软件包。
    
  2. LiveDVD版:看名字就知道了,就是光盘安装版。它可以通过光盘启动电脑,启动出CentOS系统,也有图形界面,也有终端。也可以安装到计算机,但是有些内容可能还需要再次到网站下载(自动)。
  3. LiveCD版:相比LiveDVD这是个更精简的光盘CentOS系统,体积更小,便于维护使用。
  4. minimal版:就是迷你版,精简了更多的东西,针对服务器优化了许多内容。如果是虚拟机学习安装,不推荐用此版本。因为minimal不带一些最基本的软件,有时候用起来比较麻烦,例如minimal连文本编辑器都不带。相比而言,bin版本则带的太多了,装过一次把桌面都带上了,如果作为服务器就不需要这么多功能。
  5. netinstall版:顾名思义,网络安装版。除非是逼不得已的情况,不然不推荐。 其实README.txt文件里面(如上图)已经写得比较清楚了,只不过都是英文的,可以看一下。另外,md5sum和sha1sum文件是MD5和SHA1的校验值。ISO文件下载后可以对照一下,以保证文件的原版完整性。

2015-06-10 linux , centos

加密入门(三):TrueCrypt

TrueCrypt 是一款功能强大的开源加密工具,利用 TrueCrypt 可以创建一个加密文件作为虚拟加密卷,将需要保护的文件保存在这个加密文件之中,也可以对硬盘分区进行加密,甚至是对系统分区进行加密。

下面我们一起来认识一下强大的 TrueCrypt。

##1. 下载安装 TrueCrypt

首先到官方网站下载 TrueCrypt,进入下载页面之后,在 “Windows 7/Vista/XP/2000” 下方点击 Download 按钮下载 Windows 版本。

安装过程是英文界面,请按照以下的步骤进行安装:

  1. 运行下载的安装程序,进入“License”(授权)页面,勾选授权文本下方的“I accept and agree to be bound by the license terms”(我同意并接受授权协议的约束)复选框,点击“Accept”(接受)即可。
  2. 进入“Wizard Mode”(向导模式)页面。可供选择的选项有以下两个:
    • Install(安装模式):正常安装 TrueCrypt,将向注册表中写入相关信息并且创建快捷方式。
    • Extract(解压模式):将 TrueCrypt 解压到指定文件夹,不会向计算机中写入任何信息,执行 TrueCrypt.exe 即可运行 TrueCrypt。
  3. 假如上一步选择 Install 选项,点击 Next进入“Setup Mode”(安装模式)页面,请参照下图文字说明进行设置,设置完成点击 Install(安装)即可开始安装。
  4. 假如上一步选择 Extract 选项,安装程序将弹出对话框要求确认,文字大意是:假如选择 Extract 选项进行安装,TrueCrypt 每次启动都必须以 Portable Mode(移动模式)运行,因此每次运行时都必须以管理员身份启动,而且触发 UAC(用户帐户控制)提示。确认之后进入下一页面,选择解压路径之后点击“Extract”开始解压。 安装完成后请到 http://www.truecrypt.org/localizations 下载简体中文语言包,下载后解压到 TrueCrypt 的安装目录中,然后运行 TrueCrypt,选择“Setting”菜单中的“Language”选项,在弹出的对话框中选择“简体中文”即可。

##2. 创建挂载加密文件/分区

创建加密文件/分区是 True Crypt 最基本的加密功能,两者统称为加密卷。在创建方法和使用方法上两者并无太大区别。

按照下述步骤创建加密卷。

  1. 运行 TrueCrypt,选择“加密卷”菜单中的“创建加密卷”选项,TrueCrypt 将弹出加密卷创建向导对话框。此处有三个选项可供选择:
    • 创建文件型加密卷:创建加密文件,将机密数据保存在某个加密文件中。
    • 加密非系统分区/设备:创建加密分区,将机密数据保存在某个加密分区中。
    • 加密系统分区或者整个系统所在硬盘:将整个系统分区进行加密,在开机之前需要输入密码。

选择第一项或者第二项,点击下一步继续。

  1. 进入“卷类型”页面,此处有两个选项可供选择:
    • 标准TrueCrypt加密卷
    • 隐藏的TrueCrypt加密卷

这里选择第一项,后文将对隐藏加密卷这一功能做介绍。点击下一步继续。

  1. 如果之前选择的是“创建文件型加密卷”,现在就进入“加密卷位置”页面,在此选择存放加密卷文件的位置,由于 TrueCrypt 允许你使用任何扩展名,你可以使用 .doc 等常见扩展名进行伪装,设置完成之后点击下一步继续。
  2. 如果之前选择的是“加密非系统分区/设备”,现在同样进入“加密卷位置”页面,不过选择的是需要加密的设备,选择设备之后需要设置“加密卷创建方式”,包括“创建加密卷并格式化”和“就地加密分区”两个选项,设置完成之后点击下一步继续。
  3. 现在进入“加密选项”页面,在此可以选择加密算法和哈希算法,默认的设置是 [[AES 加密算法]]和 RIPEMD-160 哈希算法,建议保留默认设置即可,设置完毕点击下一步继续。
  4. 进入“加密卷大小”页面,如果创建文件型加密卷在此可以指定加密卷的大小,加密卷大小实际上就是加密卷的最大容量,请按照自己的需要和数据大小进行设置,点击下一步继续。
  5. 进入“加密卷密码”页面,在此可以选择两种不同的解密方式:密码和密钥文件。两种解密方式可以叠加,设置完毕点击下一步继续。
  6. 进入“加密卷格式化”页面,在此可以设置加密卷的文件系统类型、簇大小。如果之前选择的是“创建文件型加密卷”,此处可以设置是否动态卷,动态卷是指加密文件的大小根据数据容量自动扩展。如果之前选择的是“加密非系统分区/设备”,此处可以设置是否快速格式化,设置完成点击“格式化”按钮即可开始创建加密卷的过程。

加密卷需要挂载才能使用,请按以下步骤进行挂载:

  1. 在 TrueCrypt 主界面点击“加载文件”或“加载设备”按钮,选择加密文件或者加密分区。
  2. 在盘符列表中选择某个空闲的盘符,点击下方的“加载”按钮。
  3. 按照预设的解密方式输入密码或提供密钥文件进行解密。
  4. 如果有需要,点击对话框中的“加载选项”按钮,可以进一步调整加载设置。

挂载完成之后在资源管理器就可以看到加密卷了,使用加密卷与使用普通分区无异,解密处理自动在后台进行,对用户透明。

使用完这个加密卷之后请在 TrueCrypt 主界面下方点击“卸载”按钮卸载这一加密卷,以确保数据安全。

假如你需要修改加密卷密码的话,请先将加密卷卸载,然后点击“加密卷工具”按钮,在菜单中选择“更改加密卷密码”,然后在弹出的对话框中更改密码即可。

##3. 创建挂载隐藏加密卷

隐藏加密卷是一种迷惑入侵者、隐藏加密数据的方法,即是通过在加密卷中隐藏另一个加密卷来保护保密数据,如果你被强迫要求提供加密卷密码,可以提供外层加密卷密码,入侵者不能证明存在隐藏加密卷。

创建隐藏加密卷的步骤实际上与创建普通加密卷很类似,在创建加密卷向导第二步选择创建隐藏加密卷,然后选择创建隐藏加密卷模式,有以下两种模式可供选择:

  • 常规模式:首先创建一个普通加密卷作为外层加密卷,然后创建内层隐藏加密卷。
  • 直接模式:利用已经创建的普通加密卷作为外层加密卷,然后创建内层隐藏加密卷。

此后步骤与创建普通加密卷类似,请按照向导操作即可。

挂载隐藏加密卷的方法是直接输入隐藏加密卷的密码,也就是说,载入的加密卷是外层加密卷还是隐藏加密卷是依靠输入的密码来决定的,而非先载入外层加密卷,再载入隐藏加密卷。

由于隐藏加密卷和外层加密卷共用空间,所以向外层加密卷写入数据可能破坏隐藏加密卷,所以在隐藏加密卷创建完成之后不要再修改外层加密卷的内容,如果需要修改请在挂载时对隐藏加密卷进行保护,以免导致隐藏加密卷被破坏。方法如下:

在挂载外层加密卷输入密码时,点击“加载选项”,在弹出的“加载选项”对话框中选择“向外层加密卷写入数据时保护隐藏加密卷”,然后输入隐藏加密卷密码加载即可对隐藏加密卷进行写入保护。但是应该注意的是保护隐藏加密卷会使别人很容易发现隐藏加密卷,因为 TrueCrypt 中显示的加密卷类型是“外层”。

##4. 加密系统分区

在对系统分区进行加密之前请做好以下的准备工作:

  • 准备一张空白光盘以刻录 TrueCrypt 应急盘,或者安装虚拟光驱软件。
  • 确认 TrueCrypt 为安装版。

请按照以下步骤进行设置:

  1. 启动“创建加密卷”向导,选择“加密系统分区或者系统所在硬盘”选项,点击“下一步”继续。
  2. 进入“系统加密类型”页面,此处有两个选项可供选择:
    • 常规:直接对系统分区或整个硬盘进行加密。
    • 隐藏:创建隐藏操作系统,类似于隐藏加密卷。

此处我们选择第二项,点击下一步继续。

  1. 进入“要加密的区域”页面,此处有两个选项可供选择:
    • 加密 Windows 所在的分区:仅仅加密 Windows 安装所在的分区,通常是指C盘。
    • 加密整个硬盘:将安装 Windows 的硬盘进行加密。

请根据自己的需要选择,点击“下一步”继续。

  1. 假如刚才选择加密整个硬盘,向导将询问是否加密主机保护区域,建议选择“否”,点击下一步继续。
  2. 现在进入“操作系统数目”页面,请根据实际情况选择“单系统”或者“多重启动”(建议多重启动用户不要使用此类加密),点击下一步继续。
  3. 此后几个步骤与创建普通加密卷相同,包括选择加密算法和输入密码等等,根据向导设置即可。
  4. 现在 TrueCrypt 会要求刻录 TrueCrypt 应急盘,必须刻录之后才能继续。如果不想刻录的话使用虚拟光驱挂载镜像文件即可,验证光盘完毕之后点击“下一步”。
  5. 现在 TrueCrypt 会询问擦除模式,可选选项为“不擦除”、“3 次擦除”、“7 次擦除”和“35 次擦除”,擦除次数越多,数据安全性越好,但耗费时间就越长,设置完成后点击“下一步”。
  6. 现在 TrueCrypt 会对系统进行预测试,点击“测试”按钮重启计算机进行测试,重启后 Windows 启动之前会要求输入密码。
  7. 进入系统之后 TrueCrypt 会提示可以开始加密,注意开始加密之后无法中途取消,只能暂停或者推迟加密操作。
  8. 加密完成,以后每次开机都需要输入密码才能使用操作系统。

假如你需要对加密的系统进行解密的话,运行 TrueCrypt,选择“系统”菜单中的“永久解密系统分区/驱动器”,确认之后即可开始解密。

TrueCrypt 是一个既专业又易用的加密软件,可以为本机的机密数据提供高质量的加密保护,推荐对数据安全有较高要求的朋友使用。

##本文历史:

2011 年 3 月 20 日:初稿完成 2011 年 8 月 13 日:精简文字,调整结构

原文地址:加密入门(三):TrueCrypt http://terrychen.info/encryption-truecrypt/


2015-05-27 encryption , TrueCrypt , windows

加密入门(四):Gpg4win

Gpg4win 是一款基于 GPG 的非对称加密软件。非对称加密方式,简单理解就是用公钥加密文件,用私钥解密文件。如果你需要发送加密信息,首先获取接收者的公钥,然后利用该公钥加密后传递,对方利用对应的私钥就可解密。也就是说,公钥是锁,私钥是钥匙。非对称加密方式很好地解决了传递机密信息的问题。

GPG,又称为 GnuPG,全称是 Gnu Private Guard,即 GNU 隐私卫士。GPG 是以 PGP 算法为核心的强大的加密软件。但 GPG 项目是一套命令行程序,而且是为 Linux 等开源操作系统设计的。好在开发者为 GPG 开发了许多图形前端并将其迁移到 Windows 平台,Gpg4win 就是 Windows 平台 GPG 及图形前端的集合安装包,本文将介绍 Gpg4win 中图形前端的使用方法,不会涉及 GPG 的命令行使用方法。

##1. 下载安装 Gpg4win

首先到官方网站下载 Gpg4win,进入下载页面之后点击下载按钮即可下载。

在开始安装 Gpg4win 之前,我们先来了解一下 Gpg4win 是由哪些组件组成的。Gpg4win 的核心是 GPG,并包括 Kleopatra、GPA、GpgOL、GpgEX 和 Claws Mail 五个相关工具,其中 Kleopatra 和 GPA 是 GPG 的密钥管理器,用于生成、导入和导出 GPG 密钥(包括公钥和私钥),GpgOL 是 Outlook 2003 和 2007 的 GPG 支持插件,GpgEX 是资源管理器的 GPG 支持插件(不支持 Windows 64 位),Claws Mail 则是一个内置 GPG 支持的邮件客户端。本文将介绍 Kleopatra 和 GpgEX 的使用方法。

运行 Gpg4win 安装程序,选择安装组件时建议修改默认设置,默认 Gpg4win 将安装 GnuPG 核心、Kleopatra、GpgOL、GpgEX 以及支持文档(英文和德文)。我推荐只选择 Kleopatra 和 GpgEX。

其余的安装过程保持默认设置即可。安装完成之后安装程序会要求设置信任的根证书,勾选下方的“Root certificate defined or skip configuration”(根证书已定义或跳过设置),该设置只对 S/MIME 加密造成影响,而通常我们使用的是 OpenPGP 标准,即 PGP 算法。最后结束整个安装过程即可。

##2. 创建密钥对

GPG 作为非对称加密软件,进行加密解密之前必须生成密钥对,也就是生成对应公钥和私钥。请按以下步骤使用 Kleopatra 生成密钥对:

  1. 运行 Kleopatra,点击 File(文件)菜单中的 New Certificate(创建新证书)一项,运行 Certificate Creation Wizard(证书创建向导)。
  2. 进入证书类型页面,有两个选项可供选择:第一项是 OpenPGP 密钥对,第二项是 X.509 密钥对及证书。此处我们选择第一项。
  3. 进入详细信息页面,需要填入密钥对的详细信息,包括 Name(姓名)、Email(电子邮箱地址)和 Comment(附加信息)三项。点击 Advanced Settings(高级设置)按钮,可以对密钥算法和强度以及密钥用途进行设置,为了增强安全性可以在上方的密钥强度中选择最高的 3072 bits(3072 位),下方的密钥用途设置主要有三个设置:Signing(签名)、Encryption(加密)和 Authentication(认证),维持默认设置即可,最后的 Valid until 选项可以设置密钥到期时间。设置完成点击下一步。
  4. 最后确认密钥对的相关设置。点击 Create Key(创建密钥)按钮,程序将要求输入 Passphrase(密码短语),Passphrase 是使用私钥之前需要输入的密码短语,不过与普通密码相比,Passphrase 长度更长,而且可以包含空格。输入 Passphrase 之后还可以在下图所示的文本框中输入帮助计算机创建更为安全的密钥,输入内容无关紧要,计算机只是利用击键的间歇时间生成随机数,或者也可以移动这一窗口来帮助计算机生成随机数。
  5. 最后 Kleopatra 将提示创建密钥对完成,下方三个选项是备份密钥对、通过 Email 发送公钥和将公钥上传到服务器,如果不需要执行上述操作点击 Finish(完成)即可。

##3. 导入导出公钥

生成密钥对之后,我们必须导出公钥,请按以下步骤导出公钥:

  1. 在 Kleopatra 主界面中右键点击要导出公钥的密钥对,在右键菜单中选择 Export Certificates(导出证书)。
  2. 指定公钥的保存路径和文件名称。

除此之外,菜单中其他两项导出选项含义如下:

  • Export Secret Keys(导出私钥):用以导出密钥对。
  • Export Certificates to Server(导出证书到服务器):用以将公钥导出到服务器上。其他用户可以在存放公钥的公有服务器上搜索公钥并导入,默认的公钥服务器是 keys.gnupg.net。

导入公钥可以通过 File(文件)菜单中的 Import Certificates(导入证书)选项进行,也可以直接利用拖拽操作将公钥文件拖到 Kleopatra 的密钥列表,然后在弹出的菜单中选择 Import Certificates(导入证书)即可。

对于导出到服务器的公钥,选择 File(文件)菜单中的 Lookup Certificates on Server(在服务器上搜索公钥)选项,输入 Email 地址点击 Search(搜索)按钮就可以找到对应的公钥,点击 Import(导入)按钮就可以导入公钥。

##4. 加密解密文件

导入公钥之后,我们就可以加密文件了。启动加密操作向导有三种途径,一种是在 Kleopatra 主界面中选择 File(文件)菜单中选择 Sign/Encrypt Files(签名 / 加密文件),一种是将要加密的文件或文件夹拖拽到 Kleopatra 主界面中,然后在弹出的右键菜单中选择 Sign/Encrypt(签名 / 加密),一种则是在想要加密的文件或文件夹的右键菜单中选择 Sign and encrypt(签名与加密)。这三种途径没有本质区别,除了第一种途径无法选择文件夹因此只能加密文件。下面对加密向导进行介绍:

  1. 首先是选择操作类型,分别是签名并加密、加密和签名,默认选择的是中间一项加密,最下方的复选框 Remove unencrypted original file when done 是指加密完毕删除源文件,为了保证安全建议选上该项。设置完毕点击 Next。
  2. 现在向导会列出计算机上的所有公钥,请选择正确的公钥并点击中间的 Add(添加)将其添加到下方的列表中,如下图所示:
  3. 选择完毕点击 Encrypt(加密)按钮开始加密,假如你选择的是他人的公钥,那么 Kleopratra 会弹出对话框提示你加密之后你将不能够解密,点击 Continue 确认,保密完成之后点击 Finish 确认即可。
  4. 加密完成之后会在源文件所在文件夹生成 .gpg 为扩展名的加密文件,现在你可以把这个文件发给公钥所有者。

接收到已经加密的文件之后应该怎么解密呢?方法和加密非常类似,也是通过向导完成的。启动解密向导的途径同样有三种,一是在 Kleopatra 主界面中选择 File(文件)菜单中选择 Decrypt/Verify Files(解密 / 验证文件),一是将要解密的文件或文件夹拖拽到 Kleopatra 主界面中,然后在弹出的右键菜单中选择 Decrypt/Verify(解密 / 验证),一种则是在想要解密的文件或文件夹的右键菜单中选择 Decrypt and verify(解密和验证)。

以上述任意一种方式启动加密向导,点击解密向导对话框的 Decrypt/Verify(解密 / 验证)按钮,假如弹出对话框,请输入你的私钥的 Passphrase,输入之后点击 OK 就可以使用你的私钥进行解密了,注意在本用户对话期间你再次使用私钥是不需要输入 Passphrase 的,也就是说,使用私钥之后最好注销一下以保证安全。

GnuPG 和其他加密工具相比,其非对称性加密的特点使其更适合于机密信息的传递。除了加密解密之外,GPG 还可以对文件进行签名和验证,功能非常强大。而且由于 GPG 图形化前端功能的日益完善,GPG 的使用已经不再困难,Gpg4win 已经可以成为大众的加密工具。

##本文历史:

2011 年 4 月 4 日:初稿完成 2011 年 8 月 13 日:精简文字

原文地址:加密入门(四):Gpg4win http://terrychen.info/encryption-gpg4win


2015-05-27 encryption , efs , windows

加密入门(一):EFS

EFS 是 Encrypting File System 的缩写,意为加密文件系统,是 NTFS 文件系统的内建安全功能,Windows XP 之后的版本都完全支持这一特性(注意:Windows 入门版、家庭版和家庭高级版并不支持这一功能)。

EFS 的最大特点是简单易用,因为 EFS 是基于用户帐户的加密方案,也就是说只有用对文件进行加密的用户帐户登录才能使用,尽管这种加密方案存在着诸多缺点与限制,但是无疑是最简单的加密方案,用户只要能进入自己的账户即可访问,无需记忆多余的密码。

##1. 文件系统转换

EFS 必须在 NTFS 分区才能使用,如果硬盘分区是 FAT32 分区格式,请按照以下步骤转换为 NTFS 分区格式:

  1. 按下 Win + R 快捷键,在弹出的运行对话框中输入 cmd 并回车,启动命令提示符。
  2. 在弹出的命令提示符窗口中输入以下命令: convert X: /fs:ntfs 其中 X: 为你所要转换的分区盘符,输入完毕后按下回车键,等待完成后关闭窗口即可。

注意不要在转换过程中关闭命令提示符窗口,以免造成数据丢失。

##2. EFS 加密解密

使用 EFS 加密非常简单,仅需三步即可完成:

  1. 运行资源管理器,右键点击所要加密的文件或文件夹,选择“属性”。
  2. 在属性对话框中点击“高级”按钮,在高级属性对话框中勾选“加密内容以便保护数据”。
  3. 点击两次确定关闭“高级属性”和“属性”对话框,Windows 会要求选择加密范围,做出选择之后 Windows 就会开始加密过程。

如果将未加密的文件复制到 EFS 加密的文件夹中,这些文件将会被自动加密。如果将加密数据移动或复制到其他 NTFS 分区时,数据依旧保持加密属性,如果将其移动或复制到 FAT32 分区时,Windows 会询问是否解密,确认之后 Windows 会将其解密后复制或移动。

加密之后的文件或文件夹在资源管理器中将以绿色文字显示,如果你使用加密时所用的用户身份登录,那么 Windows 会在你访问这些加密数据时自动解密。但是对于攻击者来说,加密数据是无法读取修改的,因为这些数据已被 Windows 加密。

如果需要将 EFS 加密的数据解密,只要按照上述步骤取消“加密内容以便保护数据”选项即可。

##3. EFS 数据恢复密钥

由于 EFS 与用户帐户绑定,所以强烈推荐大家导出 EFS 数据恢复密钥,以免 Windows 出现问题导致加密数据无法访问。请按以下步骤导出数据恢复密钥。

  1. 按下 Win + R 快捷键,在运行对话框中输入 certmgr.msc,启动证书管理器。
  2. 在证书管理器左栏中,双击“个人”,单击“证书”。
  3. 在右栏中,右击“预期目的”为“加密文件系统”的证书,选择“所有任务”子菜单,然后点击“导出”。
  4. 在证书导出向导中点击“下一步”,点击“是,导出私钥”,点击“下一步”继续。
  5. 选择“个人信息交换”,点击“下一步”继续。
  6. 键入要使用的密码,确认该密码,点击“下一步”继续。
  7. 选择文件的名称和位置,点击“下一步”继续。
  8. 确认设置之后点击“完成”按钮,Windows 在导出完成之后会弹出对话框提示“导出完成”。

请按照以下步骤导入数据密钥:

  1. 双击导出的数据恢复密钥文件,启动证书导入向导,点击“下一步”继续。
  2. 确认将要导入的文件及其路径,点击“下一步”继续。
  3. 输入保护私钥的密码,请选择“标明该密钥为可导出”复选框,点击“下一步”继续。
  4. 选择“把所有证书保存到以下存储器中”,然后单击“浏览”并选择“个人”存储器,点击“下一步”继续。
  5. 确认设置之后点击“完成”按钮,Windows 在导入完成之后会弹出对话框提示“导入完成”。

EFS 作为一种简单的加密手段,适合对于数据安全要求不高的用户使用,对于数据安全要求较高的用户来说,BitLocker 或者更为专业的加密软件无疑是更好的选择。

##本文历史:

2011 年 3 月 11 日:初稿完成 2011 年 8 月 13 日:将 EFS 与 Bitlocker 拆分为两篇文章,并进行改写。

不知为何,原博客已经无法访问,我根据Google Cached将文章做备份。感谢InoReader帮我缓存了这么好的博客。

原文地址:加密入门(一):EFS http://terrychen.info/encryption-efs/


2015-05-27 encryption , efs , windows

加密入门(二):BitLocker

BitLocker 是 Windows 7 提供的基于分区的加密方式。BitLocker 不仅仅可以加密本机硬盘分区,还可以加密移动硬盘、U盘、SD 卡等移动存储设备。不过为了保证加密后的移动存储设备在 Windows XP 下面可以正常访问,请将其格式化为 FAT32 文件系统。

BitLocker 定位于商务用户,微软只在 Windows 7 企业版和旗舰版提供这一功能,使用之前请检查 Windows 版本。

##1. BitLocker 加密

本文操作只涉及本地硬盘非系统分区及移动存储设备。加密系统分区需要 TPM 支持,或者通过 U 盘启动,在此不作详细介绍,具体设置请参阅 http://blogs.technet.com/b/xiwang/archive/2009/05/19/windows-7-bitlocker.aspx。

请按照以下步骤对驱动器进行加密:

  1. 启动 Windows 资源管理器,右击要使用 Bitlocker 加密的驱动器,选择“启用 BitLocker”。
  2. 选择解锁驱动器方式,对于移动存储设备而言,解锁方式包括密码和智能卡解锁,对于本地非系统分区而言,解锁方式包括密码、智能卡和登录到 Windows 时自动对驱动器解锁(必须先使用 BitLocker 加密系统分区)。选择之后输入密码或者插入智能卡,点击“下一步”继续。
  3. 选择存储恢复密钥方式,以便在密码遗忘或智能卡丢失的情况下解锁驱动器,对于移动存储设备而言,存储方式包括“将恢复密钥保存到文件”和“打印恢复密钥”,对于本地非系统分区而言,存储方式包括“将恢复密钥保存到 USB 闪存驱动器”“将恢复密钥保存到文件”和“打印恢复密钥”。设置完毕点击“下一步”继续
  4. 确认使用 BitLocker 加密,点击“启动加密”按钮开始加密过程。

BitLocker 加密过程较为缓慢,请耐心等待,假如需要暂时移除移动存储设备,请暂停加密,以免造成数据丢失。

在 Windows 7 中插入 BitLocker 加密的驱动器,Windows 会自动弹出对话框让你输入密码,正确输入密码后就可以正常使用,而且使用时对性能的影响很小。

经过BitLocker加密之后的驱动器的图标与普通驱动器不同,Windows 7会以不同颜色的锁和钥匙图标来反映目前的存储器状态,其中灰色代表加密的磁盘已经解锁,黄色则是未解锁。

##2. BitLocker 管理

对于已经使用 BitLocker 加密的驱动器,我们可以修改 BitLocker 密码和解密驱动器。

在 Windows 资源管理器中右击已经使用 BitLocker 加密的驱动器,选择“管理 BitLocker”,在此处我们可以修改 BitLocker 密码。

在开始菜单搜索框中输入“BitLocker”,选择“BitLocker 驱动器加密”选项,然后在相应驱动器处选择“关闭 BitLcoker”即可对驱动器解密。

##3. 在 Windows XP 中读取加密数据

只有 FAT32 格式的移动存储设备在使用 BitLocker 加密之后能在 Windows XP 中读取,在 Windows XP 中双击加密分区,Windows 会要求输入密码,输入密码之后会弹出 BitLocker To Go 阅读器允许你读取加密分区中的文件,不过只能读不能写。

BitLocker 是一种比较简易的加密方式,推荐安装了 Windows 7 旗舰版或企业版的朋友一试。

##本文历史:

2011 年 3 月 11 日:初稿完成 2011 年 8 月 13 日:将 EFS 与 Bitlocker 拆分为两篇文章,并进行改写。

原文地址:加密入门(二):BitLocker http://terrychen.info/encryption-bitlocker/


2015-05-27 encryption , BitLocker , windows

KeePass 教程

如今,我们的生活充斥着各色各样的密码。所谓密码管理器,就是用一个主密码来保护所有其他密码。使用密码管理器,可以减轻记忆负担,而且只要在主密码不泄漏或者遗忘的情况下,我们的账户安全就能够得到保障。

本文所要介绍的 KeePass 就是一款出色的密码管理器,KeePass 具有以下优点:

  • 简单易用,易于上手。
  • 功能全面,既能保存密码,还能生成健壮的密码
  • 开源软件,安全性更高
  • 跨平台软件,支持 Windows、Linux 和 Mac 三大平台,甚至还有移动操作系统版本。
  • 移动版软件,便携绿色。

下面,我们一起来学习如何使用 KeePass。

##1. 下载安装 KeePass

KeePass 有经典版本 1.x 和专业版本 2.x 两种版本,主要有如下两点区别:

  1. KeePass 2.x 需要 .NET 2.0 以上版本(Windows Vista 以上版本已经预装)才能运行,而 1.x 不需要任何依赖。
  2. KeePass 2.x 功能更全面,例如增加了双通道自动输入混淆功能。

由于 KeePass 2.x 功能更为全面,我推荐大家选用这一版本。下文将以 KeePass 2.x 版本为例进行讲解。

访问 KeePass 官网下载页面 http://keepass.info/download.html ,左栏的 Classical Edition 为 KeePass 1.x 版本,右栏的 Professional Edition 为 KeePass 2.x 版本,每一栏中都有两个下载链接,分别是 Installer EXE for Windows 和 ZIP Package,即安装程序和移动版本,请按照自己的需要选择下载。

KeePass 的安装过程非常简单,按照提示安装即可。

安装 KeePass 完成之后,请访问 http://keepass.info/translations.html 下载中文语言包,页面中 Chinese, Simp. 即是简体中文语言包(五星红旗处),注意选择对应版本语言包。下载解压之后将 KeePass 的语言文件(*.lngx)复制到 KeePass 的安装目录。复制完成之后启动 KeePass,选择 View 菜单,点击 Change Language,在弹出的对话框中选择 Simplified Chinese,KeePass 将要求重新启动,点击 Yes 重新启动 KeePass 即可。

对于 Ubuntu 用户,请参阅如何在 Ubuntu 中安装 KeePass 2 进行安装设置。

2. KeePass 教程

2.1 创建密码数据库

开始使用 KeePass 之前,首先需要创建密码数据库以保存密码,步骤如下:

  1. 启动 KeePass,选择文件菜单,选择新建选项。
  2. 选择数据库文件保存路径,请将其存放在安全之处并注意备份。
  3. 选择数据库保护方式,包括以下三种类型:
    • 主密码:最为传统的保护方式,输入足够健壮而又易记的密码即可。
    • 密钥文件:保存一个密钥文件作为访问密码数据库的凭据,选择这种方式必须注意密钥文件的安全。
    • Windows 用户帐户:将密码数据库和 Windows 账户关联,只要使用当前 Windows 账户登录即可使用,但是如果重装系统的话请先导出当前账户,否则密码数据库将无法使用。

三种方式可以叠加使用,但是推荐大家使用主密码的方式进行保护。

  1. 最后对密码数据库进行设置,包括数据库名称、加密选项等等,请按照自己的需要进行设置即可。

2.2 保存密码及自动输入

此处将以 Gmail 为例讲解如何保存密码和自动输入,步骤如下:

  1. 运行 KeePass,点击添加记录(或者按下 Insert 键),弹出添加记录对话框。

  2. 在记录标签页中需要填写的项目主要有以下几项:

    • 标题:需要输入密码的窗口标题,该信息是 KeePass 在全局自动填写时用于选择帐户密码的根据。在本例中为打开 Gmail 网址后,浏览器标题栏的部分内容,比如 Gmail。
    • 用户名:在本例中为 Gmail 账号。
    • 密码:在本例中为 Gmail 的登录密码。
    • 网址:用于按下 Ctrl + U 快捷键 快速启动相关网址或程序,在本例中为 http://gmail.com 。如果需要设置程序时则输入 cmd:// 程序文件路径,或者点击工具按钮,选择其中的网址:选择程序选项。

在自动输入标签页,还可以勾选双通道自动输入混淆选项,以阻止木马通过键盘记录窃取你的密码,但是只有支持 Ctrl + V 快捷键粘贴的窗口才能使用。 设置完成之后启动浏览器(如果设置网址的话可在选中相关条目后按下 Ctrl + U 启动),按下快捷键左 Ctrl + Alt + A(注意关闭中文输入法),KeePass 将自动输入密码并登录 Gmail。除此之外还可以先选择浏览器窗口,然后调出 KeePass(快捷键左 Ctrl+Alt+K),在相应密码条目右击,选择执行自动输入,KeePass 就会自动输入账户密码,注意 KeePass 是按照前一焦点窗口的原则选择输入窗口的,所以请保证前一焦点窗口是正确的。

2.3 自定义自动输入方式

由于 KeePass 按照 {USERNAME}{TAB}{PASSWORD}{ENTER} 的序列输入密码的,一些网站或者软件不能正常登录。例如 TM 启动之后默认焦点是在密码输入框处,使用默认序列会出错。这时我们可以通过自定义自动输入序列来解决这一问题。

首先参照上述方法建立新密码条目,标题填入 TM,网址填入 CMD://”C:\Program Files\Tencent\TM2009\Bin\TM.exe”(由于目录中含有空格,因此必须包括英文双引号)。然后切换到自动输入标签页,勾选替代默认规则后,在输入框中输入以下内容:

+{TAB}{USERNAME}{TAB}{PASSWORD}{ENTER}

现在切换到 TM,按下左 Ctrl + Alt + A 即可自动登录。QQ 的设置与之类似,只要注意标题改为 QQ 即可。

下面我来介绍一下自动输入序列,默认输入序列是{USERNAME}{TAB}{PASSWORD}{ENTER},其中{USERNAME}是用户名,{PASSWORD}是密码,{TAB}是 Tab 键(用于切换焦点),{ENTER}是 Enter 键。一些特殊键的对应表可见官网文档 http://keepass.info/help/base/autotype.html#autoseq ,上面所用的 + 所对应的就是 Shift,和 Tab 组合之后可以跳到前一个输入框从而输入用户名。知道特殊键对应和写作规律之后我们也可以按照自己的情况写作特殊的自动输入序列。

2.4 生成安全密码

在新建密码条目时,点击确认密码文本框右侧的生成密码,选择打开密码生成器,就可以打开如下图所示的密码生成器。

在密码生成器中可以对密码生成方案进行配置,如密码长度、密码组成等等,设置完成后点击确定回到添加记录对话框,点击密码文本框右侧的用星号 显示 / 隐藏密码按钮,将密码复制出来用于注册,最后按照通常步骤添加密码记录即可。

上面就是使用 KeePass 的一些基本方法,除此之外,KeePass 还具有插件机制,请大家自行探索。

##本文历史:

2011 年 4 月 26 日:初稿完成 2011 年 5 月 1 日:第一次修改 2011 年 8 月 11 日:将标题由“KeePass 使用全攻略”修改为“KeePass 教程”,删除“KeePass 插件使用”一节,并精简文字。

原文地址:KeePass 教程 http://terrychen.info/keepass-tutorial/


2015-05-26 encryption , KeePass , windows

使用 javadoc 自动生成 Java 文档

Java 的注释,单行,多行的语法就不在赘述了。

javadoc tags

给 Java 源码文件书写注释,使用常见的 Java 注释可以实现一些,也可以通过如下的 Javadoc 的 Tags 来实现一些特殊的比如跳转,参数返回值等特殊标记。

javadoc 标记有如下一些:

  • @author 作者名,一般不推荐使用,git blame 基本上能够找到每一行代码的作者
  • @version 版本号
  • @see 跳转到相关类或者主题
  • @param 对方法中某参数的说明
  • @return 对方法返回值的说明
  • @exception 对方法可能抛出的异常进行说明

不过已经不建议在 Java 源文件中使用 @author 标记,现代的 git 完全能够满足模块作者的追溯,甚至可以精确到每一行的作者。

@see 允许用户引用其他类的文档

  • @see classname
  • @see fully-qualified-classname
  • @see fully-qualified-classname#method

see 也可以使用一个超链接

/**
 * @see <a href="https://docs.oracle.com/en/java/">Java Dcoumentation</a>
 */

@linkinline tag

Package doc

上面的方法可以给类,方法,参数等等编写注释,如果要给一个包添加注释,就需要额外添加 package-info.java 的文件。

从 Java 1.5 版本开始可以在包下新建一个名为 package-info.java 的文件,在这个文件中可以使用标准 Java 注释来给 package 书写文档:

com/foo/package-info.java:

/**
 * com.foo is a group of bar utils for operating on foo things.
 */
package com.foo;

//rest of the file is empty

注释中的代码

如果要在 javadoc 中书写代码,尤其是想要展示一些例子的时候,不可避免的会用到 <, > 以及 @ 等等特殊的符号。Javadoc 默认是 html 的 tag 来渲染格式,所以这种情况下有 <pre><code> 选择,然后 javadoc 还提供了 {@code} 语法。这三个方式都可以用来注释代码,但各自又不相同。

使用 pre 标签

<pre> 标记是 html 默认的格式化标签,如果使用 <pre> 标签,那么所有的 html 的标记都需要转义。

/**
 * <pre>
 * public class JavadocTest {
 *   // indentation and line breaks are kept
 *
 *   &#64;SuppressWarnings
 *   public List&#60;String&#62; generics(){
 *     // '@', '<' and '>'  have to be escaped with HTML codes
 *     // when used in annotations or generics
 *   }
 * }
 * </pre>
 */
public class PreTest {}

命令行的使用

Java 安装完成之后在 Java Path 的目录中自带了 javadoc 这个命令行,如果不想使用 maven-javadoc-plugin 可以使用这个命令来生成 javadoc.

用法:

  javadoc [options] [packagenames] [sourcefiles]

选项:

  • -public 仅显示 public 类和成员
  • -protected 显示 protected/public 类和成员 (缺省)
  • -package 显示 package/protected/public 类和成员
  • -private 显示所有类和成员
  • -d 输出文件的目标目录
  • -version 包含 @version 段
  • -author 包含 @author 段
  • -splitindex 将索引分为每个字母对应一个文件
  • -windowtitle 文档的浏览器窗口标题

在 Intellij 中调整文件头

Intellij 默认会在创建文件的时候给文件添加一些注释,这些注释可以在如下的设置中修改:

File -> Setting -> Editor-> File and Code Template-> File Header

2015-05-26 javadoc , java , document

Java 内存模型

本文为《深入理解 Java 虚拟机》的笔记。

Java 虚拟机规范中定义了一种 Java 内存模型,用来规避各种硬件和操作系统的内存访问差异,让 Java 在各种平台下都能达到一致的并发效果。Java 内存模型的主要目标是定义程序中各个变量的访问规则,在 JVM 中将变量存储到内存和从内存中取出变量这样的底层细节。

Java 内存模型的目标是定义程序中各个变量的访问规则,这里的变量 Variable 包含了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量和方法参数,因为后者是线程私有的,不会被共享。

Java 内存模型规定所有变量存储在主存 Main Memory 中,每个线程都有自己的工作内存 Working Memory。线程的工作内存中保存了被该线程使用到的主存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写内存中变量。不同线程无法访问对方工作内存的变量,线程间变量传递需要通过主存来完成。

内存间交互操作

主存和工作内存之间定义了如下的操作。

  • lock : 作用于主存变量,把变量标识为一条线程独占状态
  • unlock : 作用于主存变量,把处于锁定状态的变量释放
  • read : 作用于主存,把变量值从主存传输到线程的工作内存,以便 load 使用
  • load : 作用于工作内存的变量,把 read 操作从主存中得到的变量值放到工作内存的变量副本中
  • use : 作用于工作内存变量,把工作内存的变量传递给执行引擎,当虚拟机遇到一个需要使用到变量的值的字节码指令时将会执行这个操作
  • assign : 作用于工作内存的变量,把从执行引擎收到的值赋值给工作内存的变量,当虚拟机遇到一个给变量赋值的字节码指令时执行这个操作
  • store : 作用于工作内存的变量,把工作内存中的一个变量的值传送到主内存中,以便随后 write 操作使用
  • write : 作用于主内存的变量,把 store 操作从工作内存中得到的变量的值放到主内存变量

定义了这些操作之后,就有一些规则,必须满足。

  • 不允许 read, load, store, write 操作单独出现,必须组合出现
  • 不允许线程丢弃它最近的 assign 操作
  • 不允许线程无原因(无 assign 操作)将数据从线程的工作内存同步到主存中
  • 新变量只能在主存中诞生,不允许在工作内存中直接使用未被初始化 (load or assign) 的变量,对一个变量实施 use 和 store 操作之前,必须先执行过 assign 和 load 操作
  • 一个变量同一时刻只允许一条线程对其 lock 操作,但 lock 操作可以被同一条线程重复执行多次,多次执行 lock 后,只有执行相同次数的 unlock 操作变量才会解锁
  • 对一个变量执行 lock 操作,将会清空工作内存中此变量的值,在执行引擎使用这个变量前,需要重新执行 load 和 assign 操作初始化变量的值
  • 如果变量没有 lock 操作,不允许 unlock 操作,也不允许 unlock 被其他线程锁定的变量
  • 对一个变量执行 unlock 操作前,必须把变量同步回主存中(执行 store 和 write 操作)

volatile 变量的规则

volatile 是 Java 虚拟机提供的最轻量的同步机制。当变量定义成 volatile 后,具备两种特性:

  • 此变量对所有线程可见,当一条线程对变量做出修改,新值对于其他线程来说是立即得知的
  • volatile 变量第二个语义是禁止指令重排序

指令重排序

为了提升执行速度,计算机在执行代码的时候会对指令进行重排序。

包括:

  • 编译器优化重排,包括 JVM,JIT 编译器,不改变单线程语义的情况下重新安排语句执行顺序
  • 指令并行重排,现代处理器采用指令级别并行技术 (Instruction-Level Parallelism,ILP)来将多条指令重叠执行,如果不存在数据依赖问题,处理器可以改变语句顺序。

指令重排序,指的是 JVM 优化指令执行的顺序,提高程序的运行速度,在不影响单线程程序执行结果的前提下,尽可能提高并发。

在 JDK1.5 之后,使用 volatile 变量禁止指令重排序。针对 volatile 修饰的变量,在读写操作指令前后会插入内存屏障,指令重排序时不能把后面的指令重排序到内存屏

double pi = 3.14;
double r = 2.1;
double area = pi*r*r;

代码在执行时,1->2->3,或者 2->1->3 对结果并没有影响,编译和运行时可能对 1,2 语句进行重排序。

JVM 内存屏障插入策略:

  • 每个 volatile 写操作的前面插入一个 StoreStore 屏障;
  • 在每个 volatile 写操作的后面插入一个 StoreLoad 屏障;
  • 在每个 volatile 读操作的后面插入一个 LoadLoad 屏障;
  • 在每个 volatile 读操作的后面插入一个 LoadStore 屏障。

2015-05-26 java , memory-model , jvm

电子书

最近文章

  • Omnivore 一款开源的稍后阅读服务 Omnivore 是一个开源的,稍后阅读应用,查看起官方的页面,支持非常多的客户端,包括了 iOS, macOS, Chrome,等等 Android 还在测试中。
  • 我买了一块 1TB 的便携移动硬盘 三星 T7 笔记本电脑用了 3 年多,各种媒体材料,尤其是音乐我喜欢放在本地,以及各种应用程序基本上已经把磁盘自带的空间占满了,这两天刚好看到日亚有促销活动,可能是看我之前搜索过 SanDisk E61,E81 ,所以推荐里面直接推送了一个三星的 T7,看了一下价格只要 10600 JPY,用 Keepa 对比了一下历史价格,以及京东上的价格,感觉还挺合适的,就下了单。
  • 对象存储服务提供商提供的免费存储容量 [[对象存储]] 的英文是 Object-based Storage System,是一种将数据以对象的形式存储在分布式系统中的服务,而不是传统的文件系统或者块存储。
  • 反查一个域名的所有子域名 前段时间看到一篇文章说因为 Nginx 的一个「特性」,在直接访问 IP ,并且没有配置默认证书的情况下 Nginx 就会返回一个 SSL 证书从而倒置域名的泄露,进而泄露了网站的源 IP,使得一些扫描网站,比如 [[censys]] 可以直接查询到域名背后的网站 IP,从而导致网站即使用了 CDN 也会遭受到攻击。在这个契机下,我又开始了衍生,因为在 censys,[[fofa]],[[Shodan]] 等等网站上你只需要输入一个域名就可以获得所有这个站点相关的信息,那么有没有办法可以在只知道一个网站域名的情况下知道所有的二级域名呢。
  • 使用 Dokku 构建属于你自己的 PaaS Dokku 是一个开源的 PaaS,用户可以非常轻松地构建自己的 PaaS 云平台。