由于国内网络安全做的太差,经常发生被脱裤的事件,比如最近的网易邮箱(via 乌云),所以只好用1password这类密码管理软件,实现一站一密。昨晚半夜冻醒了,刷推刷到了这个:1password-leaks-your-data,整个人吓醒了=_=# 作者有点标题党,脱水版可以参见reddit的这篇文章,大意是1password的旧密码库格式叫agilechains,大体是json结构,里面只有密码是加密的,密码项的名字和URL并未加密。官方提到历史原因,早期计算能力弱,只好加密关键部位。官方推出的密码库更新指南在此:Switching to OPVault format

但是,今天折腾了大半天,发现官方指南其实并没有考虑到同步的情况。我在Win,iOS,以及Mac OS X上都有使用1password,使用dropbox进行同步。官方对新的数据格式OPVault有版本要求,所有设备的1password都需要升级。升级完成后,官方没有办法直接转换到OPVault上来。需要先导出一个纯文本1pif格式,完全不带加密,然后创建一个新库,选择新的OPVault格式,再导入刚刚的1pif文件。因为之前已经有和dropbox同步,于是1password就自作主张将dropbox目录里的老库和新库合并,结果所有密码变成两份。。。由于Dropbox的版本控制只针对文件而非目录,我还要一个一个文件的回滚,崩溃了。。

以win平台为例,正确做法应该是这样:先停掉dropbox的同步。删掉dropbox里的备份文件,如果是iOS创建的Dropbox备份,文件位置在Apps/1Password/1password.agilechains。然后创建新的密码库,格式选择OPVault,文件保存在Apps/1Password/1password.opvault。将原来的主密码库导出一个纯文本1PIF文件,然后删掉原来旧格式的主密码库,如果UI没有提供接口,就退出1password,直接搜索所有的1password.agilechains来删除。删除时,注意使用Eraser来清理数据,不然就会犯陈冠希老师的错了。在新格式的OPVault里导入原来的1PIF文件,大致检查一下数量对不对,有没有漏的,没有的话就可以用Eraser将这个最容易泄密的1PIF干掉了。一切准备停当,可以打开dropbox同步,dropbox这时候应该自动将新密码库上传上去了。

win平台处理完,其他平台可以参考同样流程。不要依赖1password自己的同步,只要记住文件到了,密码库就在手上,利用dropbox完成同步即可。先把iOS的卸载掉,再重新安装,选择我是已有密码库的用户,导入dropbox里的密码库就搞定了。Mac OS X稍微有点麻烦,直接删除app不会删除备份,而且貌似1password 5是使用了sqlite来作本地数据缓存。我们需要在Finder里,前往文件夹~/Library/Application Support/1Password 4, 删除里面的数据。最新的OS X EI Capitan取消了安全清除废纸篓,可以用命令行的srm代替。然后再打开软件,就可以像iOS一样,选择已有的密码库来操作了。

1password密码库格式更新的更多相关文章

  1. 为你的PHP程序选择合适的密码库(初稿)

    如果本文中的术语让你感到疑惑,请先参阅密码学术语及概念一文. 密码学不是魔术.加密一个应用程序并不能保证它在袭击下的安全(特别是在你没有设置验证密文的情况下).但如果出于商业需求你要确保程序的安全,传 ...

  2. passwd 修改用户密码 / chpasswd 批量更新用户密码

    passwd 修改用户密码 1.命令功能 passwd 修改用户密码及密码过期时间等信息. 2.语法格式 passwd  option  username passwd   选项   用户名 选项说明 ...

  3. Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)

    一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载, ...

  4. 使用using current logfile实现DG备库实时更新

    DG1是主库,DG2是备库:运行在最大可用模式. 实验一:未使用using current logfile参数时,备库在最大可用模式下,不能实时同步备库的更新 -此时需要等待主库进行归档---侧面证明 ...

  5. 树莓派下编译并使用miracl密码库

    参考:Linux下编译并使用miracl密码库 MIRACL用户手册:https://wenku.baidu.com/view/d542f2ed0975f46527d3e1dc.html 具体过程. ...

  6. go语言标准库 时刻更新

    Packages   Standard library Other packages Sub-repositories Community Standard library ▾ Name Synops ...

  7. Javascript触屏手势库-JTouch(更新V1.1)

    作者:痞子|时间:2013-05-21|分类目录:js,javascript,jquery教程|Tag标签: javascript.jTouch|阅读(857) 7 条评论 Javascript触屏手 ...

  8. [转]git提交代码时遇到代码库有更新以及本地有更新的解决方法

    本文转自:https://blog.csdn.net/myphp2012/article/details/80519156 在多人协作开发时,经常碰到同事把最新修改推送到远程库,你在本地也做了修改,这 ...

  9. 葡萄城报表模板库再次更新!补充医院Dashboard及房地产销售行业报表

    新增模板介绍 近日,葡萄城报表再次对报表模板库进行了更新,除了补充医院用于整体运营监控的5张 Dashboard 报表外,还增加了房地产销售场景中常见的12张报表. 5张 Dashboard 报表模板 ...

随机推荐

  1. Linq to xml 小例

    static void Main(string[] args)        {            string strXml = @"<?xml version='1.0' en ...

  2. linux 安装mysql两种方式

    yum -y install gcc gcc-c++ ncurses-devel cmake  bison   zlib    zlib-devel libxml  openssl   dtrace ...

  3. 【接口】【USB】1.学习笔记

    1.USB的优点: 可以热插拔,即插上后可以自动识别: 系统总线供电,USB共有四根线,一根电源线,一根地线,一根D+线,一根D-线,D+和D-线是差分输入线: 可以支持多种设备,且扩展容易,通过HU ...

  4. Java集合类学习笔记(各种线性表性能分析)

    ArrayList.LinkedList是线性表的两种典型实现:基于数组的线性表和基于链的线性表. Queue代表了队列,Deque代表了双端队列. 一般来说,由于数组以一块连续内存区来保存所有的数组 ...

  5. javap反编译解释外部类直接使用内部类private字段的原理

    2016-07-04 15:56:39 我们都知道: 1.内部类可以直接访问外部类的private字段和方法: 2.非静态内部类持有外部类的引用: 3.外部类可以直接访问内部类的private字段和方 ...

  6. golang实现随机数

    package main import ( "fmt" "time" "math/rand" ) func main() { r := ra ...

  7. 【转】tomcat7性能调优

    注意:调优tomcat需要了解使用的tomcat是什么版本,随着tomcat版本发展有新参数引入,同时有旧参数废弃.本文档以tomcat7为例进行调优 一. 线程池(Thread Pool)优化 编辑 ...

  8. jquery 显示弹出层可利用动画效果

    1 show()方法和hide()方法 $("selector").show()  从display:none还原元素默认或已设置的display属性$("selecto ...

  9. Python开发入门与实战13-基于模板的界面

    13. 基于模板的界面 本章我们将继续基于库存的简单例子来阐述如何在python django中体现MVC的架构,根据djangobook说明: M:数据存取部分,由django数据库层处理,本章要讲 ...

  10. What does it mean to “delegate to a sister class” via virtual inheritance?

    Consider the following example: class Base { public: ; ; }; class Der1 : public virtual Base { publi ...