
需要用到的额外材料就是图中的 DigiSpark ,在淘宝上大约在10元人民币左右。
DigiSpark 其实是一个小型的类似 Arduino 的开发版,我们可以写代码刷到板子中的芯片里,芯片可以按照代码执行一些简单的任务。最近看到很多人都在海淘 YubiKey 这种小巧的密码保存器,因为正好 DigiSpark 本身有模拟 HID 的功能,何不自己做一个。

注意我的手指没有挨着板子,这个时候进入 LastPass 或者 PasswordSafe 等软件的主密码输入界面,然后手轻轻碰一下板子的背部,效果如下图。

板子上的第二个 LED 灯亮起,这个时候会模拟键盘把预先烧到芯片中的密码输入到电脑里。
代码其实很简单,如下。
#include "DigiKeyboard.h" void setup() { pinMode(0, INPUT); pinMode(1, OUTPUT); } void loop() { if (digitalRead(0) == HIGH) { digitalWrite(1, HIGH); DigiKeyboard.sendKeyStroke(0); DigiKeyboard.println("YouPasswordHere"); } DigiKeyboard.delay(5000); digitalWrite(1, LOW); }
用 Arduino 密码下载的 IDE 就可以把代码直接烧到板子上,非常方便。比较适合的场景包括开机密码,前面说的密码管理器的主密码,TrueCrypt 等软件的加密密码等,但不适合在线密码。
几个问题,
- 密码是明文的,可以 dump 出来,注意不要直接使用它存储在线密码。
- 芯片和板子会损坏,所以一定要有备份。
- 可以存储多个密码,但需要修改代码,并且安装几个 Button,用 Button 或 Button 组合区分。
- 理论上可以实现 FIDO U2F ,但我没有具体实验,如果你有兴趣欢迎联系我。
如果你不知道怎么淘宝上购买,可以问我要一个,我还有一些富余(仅限酒仙桥或北苑路附近)。

Happy Hacking
哇... 这个页面风格越来越赞了啊...
不过点留言按钮的时候会提示是不是离开...