内容简介:萌叔最近做一个类似提示:如何想要多个设备同步,完全可以将数据文件传到首先将每个记录项加密存储在
版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc
萌叔最近做一个类似 1password 的命令行密码管理工具 passwordbox 。 1password 支持多端同步,而 passwordbox 是完全离线的。
提示:如何想要多个设备同步,完全可以将数据文件传到 dropbox , 利用 dropbox 的自动同步来完成。
内部实现细节
首先将每个记录项加密存储在 SQLite 的数据文件中,然后再对整个数据文件进行二次加密。记录在内存中也是以密文的形式存在,安全系数比较高。
快速开始
编译
make build
安装
make install
启动
pwbox --data=/Users/vearne
- –data 设置加密数据文件的存储路径
建议你为 passwordbox 设置一个别名
alias pwbox='pwbox --data=/Users/vearne'
程序启动以后,按照导引的要求创建数据库,所有的记录项都存储在数据库中
─$ ./pwbox --data /tmp/ ---- login database ---- ? Please type database's name: test fullpath /tmp/6879630a7d56210d2cd2491cb99d781194689fed71d7890a8dabbcb3a678cb73 ? Database is not exist. Do you like to create database now? Yes ---- create database ---- ? Please type database's name: test ? Please type password: ***** ? Please type hint[optional]: test ---- login database ---- ? Please type database's name: test fullpath /tmp/6879630a7d56210d2cd2491cb99d781194689fed71d7890a8dabbcb3a678cb73 ? Please type your password: ***** Hint for database test is test
登录数据库成功之后,可以执行如下的命令
help
获取所有的可用命令,以及它们的用法
add
添加一个记录项
test > add --AddItem-- ? Please type Item's title: google ? Please type Item's account: myaccount ? Please type Item's password: ********** ? Please type Item's comment(optional): +----+--------+-----------+------------+---------+---------------------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+--------+-----------+------------+---------+---------------------------+ | 0 | google | myaccount | mypassword | | 2020-04-15T13:43:45+08:00 | +----+--------+-----------+------------+---------+---------------------------+ AddItem-save to file --SearchItem-- total: 2 pageSize: 20 currentPage: 1 +----+--------+---------+----------+---------+------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+--------+---------+----------+---------+------------+ | 1 | baidu | *** | *** | *** | *** | | 2 | google | *** | *** | *** | *** | +----+--------+---------+----------+---------+------------+
delete
test1 > delete --itemId 2 --DeleteItem-- +----+--------+---------------+---------------+---------+---------------------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+--------+---------------+---------------+---------+---------------------------+ | 2 | google | googleAccount | googleAccount | | 2020-04-15T13:55:25+08:00 | +----+--------+---------------+---------------+---------+---------------------------+ ? confirm delete? Yes delete item 2 success --SearchItem-- total: 1 pageSize: 20 currentPage: 1 +----+----------------+---------+----------+---------+------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+----------------+---------+----------+---------+------------+ | 1 | baidu account | *** | *** | *** | *** | +----+----------------+---------+----------+---------+------------+
modify
test > modify --itemId 1 --ModifyItem-- If you don't want to make changes, you can just press Enter! ? Please type Item's title:["baidu"] baidu account ? Please type Item's account:["baiduAccount"] ? Please type Item's password:["*************"] ? Please type Item's comment(optional):[""] +----+---------------+--------------+---------------+---------+---------------------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+---------------+--------------+---------------+---------+---------------------------+ | 1 | baidu account | baiduAccount | cbaiduAccount | | 2020-04-15T13:17:58+08:00 | +----+---------------+--------------+---------------+---------+---------------------------+
search
test > search --pageId 1 --keyword "baidu" --SearchItem-- total: 1 pageSize: 20 currentPage: 1 +----+-------+---------+----------+---------+------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+-------+---------+----------+---------+------------+ | 1 | baidu | *** | *** | *** | *** | +----+-------+---------+----------+---------+------------+
-
pageId记录项是分页显示的,每页20条数据,pageId是页号,从1开始 -
keyword可以使用keyword来对记录项进行过滤,效果近似如下 SQL 语句
select * from item where title like "%keyword%"
view
以明文方式查看某个记录项的账号、密码等信息。
除非执行 view 命令,否则一个记录项在内存中也是加密的。
test1 > view --itemId 3 --ViewItem-- +----+-------+---------+----------+---------+---------------------------+ | ID | TITLE | ACCOUNT | PASSWORD | COMMENT | MODIFIEDAT | +----+-------+---------+----------+---------+---------------------------+ | 3 | baidu | a3 | p3 | | 2020-04-16T10:04:47+08:00 | +----+-------+---------+----------+---------+---------------------------+
quit
注意记住所有修改(CRUD)只有在执行 quit 命令时,才会被持久化到磁盘上。
请我喝瓶饮料
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 包管理工具 npm 5.10 正式发布,添加新命令
- GitHub开源新命令行工具:在终端里创建、管理PR成现实
- 版本管理工具及 Ruby 工具链环境
- 进程管理工具 Supervisor
- 进程管理工具 Supervisor
- api 接口管理工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rework
Jason Fried、David Heinemeier Hansson / Crown Business / 2010-3-9 / USD 22.00
"Jason Fried and David Hansson follow their own advice in REWORK, laying bare the surprising philosophies at the core of 37signals' success and inspiring us to put them into practice. There's no jarg......一起来看看 《Rework》 这本书的介绍吧!