分类:舞影霞光

Day 9847 无痕搬家(2)以及域名重定向

又给博客搬了个家,由于我仍然很穷,加之并没有需求和能力去管理VPS,所以仍然用简单的虚拟主机。

本次搬到衡天主机(hengtian.cc)的香港主机,速度似乎还不错。

前年的时候用的戈戈主机(gegehost.com),一开始用香港主机,结果每个月大概有2-3天是不能顺利联通的,后来又换日本主机,结果每天十次里有5次是不顺畅的。

我的博客上没有违规的东西,也并不怀疑GegeHost的服务质量,只能说镇上的网络环境太复杂,抛开某个很高很宽的东西,我所在的环境就有一个配置得很烂的自动流量切换出口,在同一次登录中会切换IP,结果会被对端判断为IP地址发生变化,要求重新登录,以至于我要上主机的控制面板需要科学上网,ft。

希望这次能用得久一些。


发完一小时后补充:

因为手下还有另一个娱乐性质的域名(kunjinkao.net),原来用GegeHost的时候,主机控制面板是cPanel,直接设置域名重定向就可以了,现在换到衡天这边,控制面板是DirectAdmin,找不到对应的选项,问客服说用控制面板里的「别名指向」,但实际上没有这一项(可能是虚拟主机不支持,VPS才支持?),后来干脆说DA实现不了,我是不太相信的。

最后以手写.htaccess转向成功,但不是很稳定,凑合着吧。

以下方法来自:http://wiki.dreamhost.com/Transparently_redirect_your_root_directory_to_a_subdirectory

RewriteEngine on
RewriteBase /

#以下kunjinkao.net是要跳转的目标目录,不是域名本身
RewriteCond %{REQUEST_URI} !^/kunjinkao.net/

# Rewrites all URLS [Replace "domain" with the actual domain, without the TLD (.com, .net, .biz, etc)]
# 重写所有URL(将domain(已替换为kunjinkao)替换成不带TLD(.com、.net之类的后缀)的域名本体
RewriteCond %{HTTP_HOST} ^(www\.)?kunjinkao\.

# Rewrite all those to insert /folder
# 将所有URL重写到/
RewriteRule ^(.*)$ /kunjinkao.net/$1 [L]

Day 9740 用Arduino制作RFID钥匙链

rfid_keychain

很多人对管理密码感到由衷的麻烦,在生物特征验证尚未完全普及的今天(好像迄今为止做的最好、最为人所知的就是专属于iPhone 5S起的Touch ID),假设服务商没有(被迫)采取明文存储密码的2B做法,那么密码太短可能很容易被猜解出来,而密码太长又很容易记不住,而且在输入时也很麻烦。

因此有许多基于软件的密码管理器出现了(如1Password),只要记住一个主密码,剩下的密码都由其负责管理,并且很多优秀的产品已经出了很多平台的版本,可以跨平台进行使用,然而这种方式仍然有一点局限性:

  1. 在程序无法运行的环境下无法使用,例如:使用TrueCrypt加密的系统分区,在开机时要求输入密码;
  2. 主密码是拥有一切的前提,换句话说,如果忘记了主密码又没有备份,那么所有的密码可能都要丢失掉;
  3. 很多人有对商业软件与生俱来的不信任,在米国的棱镜项目被揭露后尤其如此。

我一直觉得很奇怪,为什么没有一种硬件,将密码离线存储在诸如IC卡之类的外部存储设备上,在需要的时候只要读卡,就能能模拟真实的键盘将密码输入。经过一番搜索,发现这种东西可能早就有了,只是没有供个人使用的商业化产品出现,其中的一个例子就是Mooltipass。

Mooltipass是一款设计精良的硬件密码管理器,除了实现以上所述的功能外,还能在适合的环境下与插件配合进行自动登录、帮助用户生成强密码(并存储下来供下次使用)。当时看到这款产品时,它还处在早期研发阶段,后来上了Indiegogo众筹。我没有双币卡,而且看到众筹也晚了些,$80的价格对我来说也有点贵(虽然说真的,值这个价钱),并且关于International Shipping说得好像也不是很清楚,所以就这么错过去了。

后来我听说了Arduino这个电子积木,其使用一种近似C的语言进行编程,并且通过一些方式可以模拟USB键盘。虽然我不会写C,但懂一点C#,两者有共通之处,所以二话没说就买了一堆零件开始尝试。

在拖延症和急功近利心理的共同作用下,一共走了以下几个弯路:

  1. 买错型号:设计上我想让成品既能读卡,又能写卡,但买了一圈之后我才知道能同时模拟USB键盘并与SPI总线上的RFID读卡模块RC-522通讯的型号是Arduino Leonardo,等我终于意识到时,已经额外买了Uno和Nano了。
  2. 多买了许多零件:跟以上理由相同,一开始以为需要用V-USB去模拟USB键盘,所以电阻、稳压二极管等等买了一大堆,最后才买到真正需要的东西。

虽然造成了许多不必要的支出,但最终这个东西还是做出来了,只有两个基本功能:

  1. 读卡,并将解密后的数据模拟键盘输入。
  2. 写卡,将加密后的明文(最长16位)存储到RFID标签中。

真正用到的元器件成本如下:

  1. Arduino Leonardo R3(¥30)
  2. 3×4矩阵键盘(¥5)
  3. RFID读卡模块RC522(含2张S50卡)(¥18)
  4. 无源蜂鸣器1枚(¥4)
  5. 公对母杜邦线一堆(¥5)
  6. 10K单联电位器(¥0.5)
  7. 8.5×5.5cm面包板(¥4)
  8. 1602 蓝色背光LCD(¥8)

合计¥74.50元——这么一算好像也不便宜,但是如果从一开始就核算成本,以自己的惰性怕是永远也做不出来。

不过以后输入16位长的密码简单些了。

源码和接线方式就算了,写的太烂。

2015-08-16更新:由于我手太笨,一直学不会焊接,所以这东西的最终形态是:

封装形式为PBC,即Paper Box Container

Day 9614 Touka’s Hosts file Replacer

toukahostsreplacer

之前受人恩惠,算是回报,同时也出于保密,以往这个应用叫什么就免提了。

功能有二:

1、从指定URL获取hosts文件,并通过以下三种方式更新本机hosts文件:直接覆盖、按行数范围修改、追加在原始文件后面。
2、将本机或远程hosts文件导出为UNIX换行符(LF)格式。

为安全起见,没有设计保存最后一次使用的hosts地址功能。

注:本程序需要.Net Framework 4.0的支持,如提示「应用程序初始化失败」,请至微软官方下载安装。

更新记录:

1.0.5.0 增加直接覆盖本地文件的选项、细节修正
1.0.4.0 初始(?)版本

下载地址

Day 9441 托盘键盘锁定键指示灯

keyboard_lock_key_indicator

功能老简单了,在系统托盘中显示键盘的NumLock和CapsLock状态,ScrollLock因为用不到所以没有做。

可能有人会说这种东西有什么用,会提出这个问题的人肯定没用过不带锁定指示灯的无线键盘或者笔记本。

可能有人会说打开辅助功能的声音提示不就完了吗,会提出这种问题的人就是有需求肯定也不是在办公室干活。

同类软件有很多,但是要么功能太累赘,要么图标不合心意,干脆自己写一个,原理也很简单,启动后下全局键盘钩子检测状态,毕竟轮询的话太浪费资源。

退出的话,在图标上点右键有菜单。

注:任务栏开启了自动隐藏不活动图标的用户请自理相关设置。

下载地址

Day 9440 已开机时间显示器

uptime_displayer找不到符合自己心目中符合的样子,干脆自己写一个。

功能很简单:通过读取系统计数器获取UpTime,每秒刷新,格式为天-小时-分-秒,没有周、月、年格式的显示

程序启动后显示在屏幕右上角,不能移动

因为足够自己用所以没有扩展定制计划,反正也不会有人会找我。

下载链接