个人密码线上存取网站的设计与实现
图2 客户类图
客户端操作主动刷新页面来获取更新数据传输,服务器端利用Websocket控件进行客户端的连接,这样就不需要主动地向对方请求数据,这样做既简单又节省系统、网络资源。用户的密码存取操作活动图如图3所示。
图3 用户存取密码活动图
对于用户的密码,为了安全性存放,必须先对其进行加密码,然后再存储,并且对于后期需要进行密码解密时,也提供了方便性,所以在对密码存储的时候,我们应该使用一种比较安全并且快捷解密的方法。根据密码加密和解密的可逆性,在选择算法时可以使用比较安全的Diffie-Hellman密钥交换算法,并且我们可以在对密码取出后传送给用户的方式上采用多种方式,比如电子邮件、手机短信等方式,为了更进一步的安全检验,需要对用户身份进行鉴别。为了防止密码数据由于某些原因出现了丢失或者破坏,能够实现这种情况下对丢失的密码进行恢复。在密码存储的解决策略中应该要注意以下几个方面:
(1)为了数据存储的安全性,采用mySQL数据库存储,并且在数据库中采用授权限制的方式进行访问,并且要求提供受限制访问的注册键。
(2)为了防止各客户端的用户产生不相同的密码,我们可以采用SALT 技术进行控制。
(3)为了使用密码的安全性,采用二进制方式进行存储,采用BASE64 编码。
在本系统中,考虑系统的安全性、易操作性,以及与选用的PHP编程语言兼容,采用MySQL作为本系统的数据库管理系统。分别为用户信息表和密码信息表建立触发器和用于储存查询次数的字段(查询次数),其默认值为0。当用户发起查询密码请求时,服务器先把查询次数增加1,这时相关的触发器会把当前的查询操作保存至操作记录表中,当数据库返回处理结果为保存成功时,才会开始执行查询操作。
3 结束语
个人密码线上存取网站既可以避免密码单一带来的盗号风险,又可以解决密码太多、太复杂所造成的密码容易忘记的问题。个人密码线上存取网站使用的HTML5页面,可以带来更便捷和安全的密码存取服务。传输加密和提供可查询操作记录服务为密码存取的安全提供了保障。
参考文献
[1]屈喜龙,朱杰,等.PHP开发动态网站实例荟萃[M].北京:机械工业出版社,2006:3.
[2]徐峰.基于MySQL的PHP数据库访问技术[J].计算机时代,2001(2).
[3]Matt Zandstra.深PHP:面向对象、模式与实践(第3版)[M].北京:人民邮电出版社,2011.
[4]apache(Web服务器)[EB/OL],[2015-01-31],http://baike.baidu.com/subview/28283/5418752.htm.
[5]张志远.JavaScript与客户端安全[J].东莞理工学院学报,2002(2).
[6]Alfred J. Menezes.等.应用密码学手册[M].胡磊译.北京:电子工业出版社,2005.