【业余作品】蚂蚁密码本的设计分析(多图,流量少慎入)

这个想法萌生于两年前的一次丢QQ密码的事件,当时就做了这个软件,做了一个月做出来了,但是一直没有完善过,并且自己也用的比较少,因为谷歌浏览器有保存密码的功能,所以一直都是自己填充密码,终于最近又忘记了一个不常用的QQ的邮箱独立密码,就有回头做下这个软件,下载了几个类似的密码软件,的确有款不错的,基本满足要求,但是收费太贵了,所以就自己按照以前的思路,重新做了一个,侧重的地方主要是便利性、代码效率、稳定性、安全性,这些都是作为一个软件需要注意提升的地方,所以从以下功能来说明设计的初衷

  • 指纹解锁

  • 3dTouch

  • iCloud备份

  • sqlite数据库存储

  • aes256加密解密

  • Itunes备份

  • 截图分享

  • 快速查看

  • 分类查看管理密码

  • 增加了筛选功能,可以快速列举您帐号绑定过的手机了,换号更快

  • 快速列举绑定邮箱也可以咯

  • 首页修改功能

  • 一键换肤功能

  • aes数据加密功能

  • 一键文字分享和截图分享,可以自由选择隐藏密码哦

一、软件整体设计

整个代码思路如下图

密码本icloud.png

根据这个思路可以基本了解功能和该软件加强的地方。

二、便利性

这个软件的功能就是为了记录密码,所以极简主义就不应该增加太多无用功能,所以软件没有去采用设置帐号密码的功能,而是采用指纹解锁,因为如果去再注册一个帐号,只是增加负担,而采用ios的指纹解锁,iCloud账户足以确定一个人,所以解锁采用指纹解锁,而云端存储则是采用的内置iCloud备份,并没有去再额外采用第三方内容。

3DTouch是6s之后,苹果推出的快捷菜单功能,因为有时可能会急着查看某项密码,所以这里增加了最常用的网站密码列表和游戏密码列表这两个列表快捷操作,增加iCloud备份是为了让你可以在举手之劳下自己去备份到iCloud,因为有不少朋友排斥自动备份,所以并没有让数据自动备份,只有当点击备份时才回去备份密码。

截图分享和文字分享是快速将你密码的项目,用户名,密码保存到一张图,或者保存到系统的剪切板,从而快速便捷的分享给你的好友,这样好友借你帐号的时候就不用一个一个打了

只有启动时设置aes加密的key,而不是每次都设置都是为了最大限度的减少对用户的打扰。

分类查看密码是为了更快的查看到之前记录的密码,而查看所有密码功能则是为了让你一览所有保存过的密码,这些都是为了最便捷的去获取到你最关心的东西

三、安全性

因为保存的是私密东西,所以安全性是必不可少的环节,首先指纹解锁增加第一道安全限制,只采用iCloud备份增加第二道安全限制,数据本地保存到数据库增加第三道安全限制。在1.0版本中,朋友提意见说如果iCloud帐号丢失了,那岂不是送给了盗号者一个大礼包。

所以在2.0版本中,增加了aes256加密,通过用户设置的key去加密所有的数据,只要用户不去泄露这个key值,那么即使iCloud帐号丢了,别人在别的手机上面恢复的也是一串无用的字符串,只有正确的key值才可以正确的解码,而这个key值只保存在本地的系统,并不会保存到数据库和iCloud云端,所以换了手机也只有你输入正确的key值才可以。

itunes备份则是导出的数据库,再恢复时直接把数据库覆盖的原来位置即可,如果没有,会自动重新创建

所以如果之前设置过key值,并且把加密的数据同步过iCloud,那么如果你想在这个新手机上用,或者新安装该软件,都需要设置之前设置的那个key,否则同步过来以前的iCloud数据是不能正确的解码的。

总结下就是在本地手机的话,有指纹解锁的保护,在别人手机有aes加密的key值保护。

四、代码效率

这次着重提高了代码的执行效率,通过不同线程和不同判断来提高处理速度,通过代码的继承重用,优化代码,去根据不同要求布局界面,在数据解析处理上,采用了当前效率比较高的处理方案和第三方库,就是为了最大的提高代码效率,杜绝游戏卡顿,不影响用户体验。

在编辑密码之后,使用aes加密处理,将处理过后的内容在本地使用sqlite存储,先保证本地的稳定性,当需要上传到iCloud的时候,因为iCloud不能直接保存sqlite,并且网上对iCloud加coreData的方案并没有多大的推崇,所以这里会将数据库内容先导出为json数据,之后将json数据上传到iCloud,上传下载过程中,网络传输的时候都是传输的aes加密过的内容

五、稳定性

稳定性也是判断一个软件是否优良的标准,该软件主要功能就是在数据的处理上,所以用到的都是成熟的库,而数据保存和读写都是用性能比较不错的数据库,尽量少用或者没用文本存储,数据解析在报错时及时处理,减少对数据的破坏,当然也许会在用的时候碰到其他bug,欢迎反馈,我会尽快处理因为苹果现在审核时间一次性通过平均最少也要三天,所以修正bug的版本也许会在提出bug的一周后。

六、后期不确定是否改进的内容

软件现在还有不足和我不太满意的地方,所以会在后期改进,当然也看用户需求,下面就是我计划中的几个内容

1、换肤(已经完成)

已经有人吐槽这个软件UI比较丑,接受这个建议,后期会根据不同类型做皮肤,增加换肤功能

2、搜索

现在只是查看所有密码,并没有搜索密码功能,因为这个做起来会有点麻烦,所以需要看需求大不再做绝对

3、界面滚动

界面现在是做的死的,有的密码项目也许很很多,如果后期增加更多项目,也许会在当前屏幕不太够

4、远程清空

这个在考虑的情况就是是否增加远程清空本机数据,这样如果你手机丢了,那么就远程清空手机保存的这些数据,但是这个我在斟酌是你远程清空的效率高,还是别人破解你指纹解锁效率高

5、自动填充

有的项目在自带的Safari浏览器中是可以自带填充的,后面也会考虑做这个功能

6、自动归类(已完成)

根据密码选项中密保手机和密保邮箱自动归类,这样就可以在更换手机号的时候知道绑定了哪个邮箱和手机号

七、软件下载

说了这么多,给一个下载地址:https://itunes.apple.com/us/app/ma-yi-mi-ma-ben-zhuan-ye-ban/id1178541464?l=zh&ls=1&mt=8

或者在appstore搜索:蚂蚁密码本

软件截图如下

1、3DTouch

IMG_3190.PNG

2、主页面ui

Simulator Screen Shot 2016年12月15日 下午2.59.36.png

3、指纹解锁和备份选项

Simulator Screen Shot 2016年12月15日 下午3.00.07.png

4、动态查看密码,分享和修改

Simulator Screen Shot 2016年12月15日 下午3.17.58.png

5、密码列表

Simulator Screen Shot 2016年12月15日 下午3.17.03.png

6、分类查看密码

Simulator Screen Shot 2016年12月15日 下午3.00.19.png

7、筛选绑定手机号和邮箱号

Simulator Screen Shot 2016年12月15日 下午3.17.21.png

8、更换皮肤

Simulator Screen Shot 2016年12月15日 下午3.17.21.png

9、设置aes加密

Simulator Screen Shot 2016年12月15日 下午2.48.14.png

10、设置皮肤

Simulator Screen Shot 2016年12月15日 下午12.22.08.png

11、皮肤效果

Simulator Screen Shot 2016年12月15日 下午3.24.28.pngSimulator Screen Shot 2016年12月15日 下午3.27.13.png

Simulator Screen Shot 2016年12月15日 下午3.30.45.pngSimulator Screen Shot 2016年12月15日 下午3.30.50.png

Simulator Screen Shot 2016年12月15日 下午3.31.01.pngIMG_3392.PNG

八、意见反馈和建议

在此感谢乃庆同学,学义大哥和夜曲的bug反馈和建议

如果您有意见反馈和建议请到:http://www.huaimayi.com/forum.php?mod=forumdisplay&fid=45

九、更新日志

蚂蚁密码本专业版IOS版更新日志:http://www.huaimayi.com/forum.php?mod=viewthread&tid=9

API开发:http://www.hudongdong.com/doc/index.php?s=/6&page_id=8

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment