摘 要:本文主要从系统设计、功能实现、整体架构的角度介绍了基于B/S模式下的模拟试衣间系统。本文还着重地介绍了Salted Password Hashing加密算法与传统的哈希函数加密算法之间存在的区别与联系,Salted Password Hashing加密算法在传统的软件系统中能够发挥重要作用,以及RESTful架构下软件系统的使用设计、实现方案及REST设计规范为实际软件编程带来的便利。
关键词:模拟试衣间系统;RESTful;前后端分离;Salted Password Hashing
Abstract:The article mainly investigates into the design,functions and structure of the simulated fitting room system based on the B/S pattern,emphasizing the differences and associations between the Salted Password Hashing and traditional Hashing algorithm,Salted Password Hashing encryption algorithm can play an important role in traditional software systems,and the use design,implementation scheme and REST design specifications of software systems under RESTful architecture bring convenience to actual software programming.
Keywords:simulated fitting room system;RESTful;front-back end decoupling;Salted Password Hashing
0 引 言
在这个快速发展的互联网时代,人们的购物活动与以前相比发生了天翻地覆的改变,而其中十分重要的一部分是衣服的购买。在互联网并没有得到普及的时代,人们购买衣服依靠于实体店,人们需要花大量的时间逛一家又一家的实体店,不断地尝试各式各样的衣服以挑选自己最心仪的那一款。而如今,即使互联网得到了普及,人们在网上购买衣服的时候也经常出现购买的产品不合身、不满意的情况。因此需要一款系统允许用户在网上完成试衣,既能丰富用户购买衣服的体验,又能有效地减少用户衣服退换货的概率。针对以上需求,我们设计了一个模拟试衣间系统,帮助用户模拟真实的试衣环节,满足用户各类别衣服的挑选、组合搭配等要求。除此之外,本系统还设有管理员权限,以进行衣服商品的统一管理。用户除了进行基本账号信息登记之外,还能够选择角色性别以及角色头像,满足不同人群的试衣需求。系统设有灵活的衣服种类管理功能,能够简单地完成衣服种类的添加、删除和修改操作,并且用户及系统管理员能够进行相应衣服类别的指向性查询。在试衣环节,用户可以从不同种类的衣服中进行任意挑选,通过外套、内衬、裤子等衣服的层级改变,用户可以完成任意外搭以及内搭需求,满足了用户多样的衣服搭配想法。在完成了心仪衣服的搭配试衣之后,用户还能进行搭配保存以及与其他用户之间的交流与分享。基于用户信息的安全性考虑,系统为每一位用户的密码进行了Salted Password Hashing算法加密,为用户的个人隐私增添了一道有力的防火墙。
1 前端
前端的开发基于HTML+CSS+JQuery这对经典组合,在实际的使用当中不乏许多当前流行的HTML5以及CSS3技术,除此之外,项目之中的JQuery使用了JQuery3版本,对比以往的setTimeout以及setInterval,利用JQuery3中提供的requestAnimationFrame这一新API能够实现anima-tion更流畅地展示,防止发生动画阻塞。
1.1 注册登录界面
在注册登录界面,左侧的“FittingRoom.”标志添加了动态切换效果,界面下方是注册登录界面的导航栏。注册登录界面如图1所示。
1.2 主页面
主界面采用居家背景,以及白色、淡墨绿色为主色调,营造舒适、安逸的环境氛围。试衣间界面如图2所示。
1.3 功能详细介绍
1.3.1 注册功能
在注册登录界面的下方菜单栏,点击“切换”,页面右侧的登录框将会下降,随之注册框将会上移,通过登录框与注册框之间的动态切换将登录与注册放置在同一个界面中。在注册框中用户可以进行用户名、密码、性别、头像等个人信息填写。
1.3.2 登录功能
在注册登录界面,默认展示登录框。用户在登录框输入自己的用户名以及密码,系统会自动将密码通过Salted Password Hashing算法进行密码验证。最终会有动态弹框进行登录结果的提示。
1.3.3 用户管理功能
用户通过快捷键调出功能菜单,并从中选择“用户管理”,伴随着展开动画,功能模块将会出现。“用户管理”只有管理员才能够进行访问,普通用户访问将会弹出权限不足提示框。在用户管理模块,管理员能够进行用户账号信息的管理。
1.3.4 服饰类型管理功能
用户通过快捷键调出功能菜单,并从中选择“服饰类型管理”,伴随着展开动画,功能模块将会出现。“服饰类型管理”只有管理员才能够进行访问,普通用户访问将会弹出权限不足提示框。在服饰类型管理模块,管理员能够对已有的服饰类型进行修改与删除,还能进行新服饰类型的添加操作。
1.3.5 服饰管理功能
用户通过快捷键能够调出功能菜单,并从中选择“服饰管理”,伴随着展开动画,功能模块将会出现。“服饰管理”只有管理员才能够进行访问,普通用户访问将会弹出权限不足提示框。在服饰管理模块,管理员对已有的服饰名称、服饰所属类型、价格、图片进行修改与删除,还能进行新服饰的添加。
1.3.6 试衣间功能
用户通过快捷键调出功能菜单,并选择“试衣间”,伴随着展开动画,功能模块将会出现。“试衣间”功能允许所有用户访问,用户能够进行服饰类型的选择,然后系统将会自动显示该服饰类型下的所有衣服,通过鼠标点击操作,用户能将所选的衣服“穿上身”,对多种服饰类型以及服饰的选择完成试衣搭配。在此期间,用户还能够进行衣服层级的调整,以进行不同内搭、外搭的选择。通过对购物车中衣服的价格计算,计算出当前用户穿在身上的衣服价格总和。
当用户选择不同的服饰类型,即触发以上代码。事先在option中插入的value属性保存该服饰类型的编号,当用户选择服饰类型时,获取用户选择的服饰类型编号以及当前用户的角色性别,然后将这两个信息传至后端,后端通过服饰类型编号以及角色性别将相应的服饰以JSONArray的形式发送至前端以进行展示。
1.3.7 保存搭配功能
在用户完成服饰搭配之后,点击“橙色”的保存按键,系统将会为用户进行当前试穿衣服的保存。当用户再次进行系统登录时,系统会自动为用户显示已保存的搭配,以便于用户进行搭配的修改。
以上代码用以完成用户搭配服饰的保存,当用户点击保存按钮时触发保存操作,将当前所有衣服的编号、层级保存至数组当中,最终将数组发送至后端,经过处理后得以保存。
2 Salted Password Hashing算法
大多数软件系统都需要与账号产生联系,有效保证账号密码的安全性是一个艰巨的任务。Salted Password Hashing通常是被用来给用户的个人账号密码提升安全性的一把锁。哈希算法本身是一种单向(Uni-Directional)的函数,它能够将任意长度的Plain text转换成一段固定长度的Cipher,这个特性十分适用于账号密码加密。因此在本项目中,采用了Salted Password Hashing进行密码的加密。Salted顾名思义“盐化的”,即是指在整个哈希加密过程中给最终的Cipher中添加一段随机的字符串,而这段随机的字符串即被称为盐值。由于这一段随机字符串的存在,同一段密码在经过两次Salted Password Hashing之后得到的Cipher将会是不同的两段字符串,使得密码被破解的可能性大大减小。
3 RESTful架构
REST的全称是Representational State Transfer,是一套完善的API设计规范,而符合如此设计规范的架构则被称为RESTful架构。RESTful架构有着许多优势,例如同一个URI能够同时供给GET、POST、PUT、DELETE方法进行不同操作。除了其轻量以及数据描述简单之外,其优势还在于实现了项目的前后端分离,何为前后端分离?举个例子,当没有实现项目的前后端分离,前端与后端工作通常是串行的,即前端等着后端的数据接口完成后才能进行前端的进一步开发以及测试工作,当以小组完成项目时,这无疑拖慢了整个项目的进度。然而因为项目的前后端分离,不再需要相互等待,前端与后端的开发工作实现并行,从而实现将整个项目的开发周期缩短。
4 结 论
在这个全民互联网时代,网上购物的普及为模拟试衣间系统的开发提供了很好的需求契机。基于B/S模式的模拟试衣间系统,利用RESTful架构实现了项目开发的前后端分离,有利于团队开发。在下一步的系统完善中,将会陆续增加添加好友以及分享服饰搭配等功能,为用户提供一个更具趣味性、功能更加丰富的软件系统。
参考文献:
[1] 祝彦斌,王春玲.一种Hash特征隐藏的加盐信息摘要模型 [J].计算机技术与发展,2013,23(3):134-138.
[2] 陈佳康.密码学算法的优化与应用 [D].北京:北京邮电大学,2013.
[3] 肖德芳,刘卓.基于Javaweb的科研项目管理系统的设计与实现 [J].电脑知识与技术,2017,13(27):69-70.
作者简介:夏禹(1995.09-),男,汉族,江西南昌人,本科,主要研究方向:软件工程理论与方法。