基于smaless及AngularJS数据分析网站的设计与实现

 2022-01-17 11:01

论文总字数:21883字

目 录

第一章 引言1

    1. 研究背景1

1.2国内外研究状况1

第二章 系统开发及概述1

2.1 系统总体规划1

2.2 数据库设计3

2.3 技术简介3

2.3.1 SailsJS简介3

2.3.2 AngularJS简介5

2.3.3 smaless简介6

2.3.4 SparkMD5简介7

第三章 网站模块设计7

3.1 轮播图模块7

3.2 字符串的MD5校验模块8

3.3 文件的MD5校验模块8

3.4文件md5信息的查询模块9

第四章 网站实现12

4.1 网站前端实现12

4.1.1 轮播图模块实现13

4.1.2字符串md5校验模块实现13

4.1.3上传文件md5校验模块实现14

4.1.4展示文件md5信息模块15

4.1.5创建文件md5记录模块16

4.2网站后端实现17

4.3前端与后端的连接19

第五章 总结与讨论20

5.1 总结20

5.2 讨论20

参考文献21

致谢22

第一章 引言

    1. 研究背景

随着二十一世纪信息时代的来临,互联网行业日益渗透到了人们生活、学习等各个方面。但是随着互联网行业的发展,越来越多包含病毒木马的文件在网络上流传开来,用户在下载安装软件时稍有不慎,电脑等其他电子设备的安全就会受到威胁或者用户的个人信息被泄漏,被不法分子利用。为了保证下载软件的安全性,避免文件被第三方修改的可能,需要有一种方式保证用户下载的软件和软件发布者的信息内容是一致的,这就需要对软件的内容进行校验。Message-Digest Algorithm 5具有许多优秀的特性,例如弱抗碰撞,容易计算等等,所以通过计算文件的MD 5值用来验证软件的安全性是一个非常合适的途径。用户只需要计算出下载文件的md5值,然后与软件发布者提供的md5值进行比较,就能很容易地知道下载的文件是否被第三方修改过,或者文件在网络传输过程中有没有出现丢包的情况,这就保证了用户电脑以及其他电子设备的安全性。

    1. 国内外研究状况

当今互联网产业已经十分普及,由此所带来的信息安全问题也不可忽视,成为了全社会关心的问题。密码学的研究也被更多的人所关注,而单向散列函数是密码学的关键,比较常用的散列算法有很多,例如MD5、SHA等。本网站采用的校验技术是MD5。

自从Rivest于1989年提出MD2算法以来,人们就开始对密码学的进行了研究,一步步的开发出了MD3、MD4算法,为了提高算法的安全性,又研究出了MD5算法。MD5算法可以用来验证文件在传输过程中是否被修改,是目前被普遍使用的杂凑算法之一,大部分编程语言都已经实现了MD5算法。杂凑算法的基础原理是将数据(例如汉字或者字符串)通过一系列计算变成另一固定长度值的字符串。在1991年, Rivest提出了MD5算法,它基于MD4算法,增加了"安全-带子"(safety-belts)的概念。MD5算法相比于MD4算法提升了安全性,但是在计算速度方面做出了一定的妥协。目前,MD5算法因为具有容易计算、弱抗碰撞等优点,在数据校验领域被普遍使用。

第二章 系统开发及技术概述

2.1 系统总体规划

为了让用户安全的安装从互联网下载的软件,避免软件被恶意的修改过,或者在文件传输时出现了丢包导致文件不完整等情况,网站提供了在线的文件md5值校验功能,不需要另外下载其他软件,方便用户使用。同时网站还收录了一些常用软件的md5值可以给用户进行查询,避免用户还要去该软件的官网查找软件的md5信息。

考虑到系统安全性,以及为了让用户可以获取到软件最新版本的md5信息,所以网站设有管理员账号,管理员在登陆之后可以往数据库中添加文件的名称,md5值信息等,也可以删除数据库中的文件md5信息,而普通用户只能上传文件校验md5值或者输入字符串校验该字符串的md5值,上传文件计算该文件的md5值和查询网站收录的软件md5值信息。在用户上传完文件以后,校验出来的md5信息会在现有的数据库中查询,如果数据库中已经存在该文件的md5值,则会从数据库中读取该文件的记录,分析该文件的种类,然后返回给用户具有类似功能的软件链接,如果用户点击了推荐文件的链接,则在数据库中就会更新该文件的hot字段值,如果之后有其他用户也上传了该种类的文件,就会优先把该文件推荐给此用户。

检查数据库中是否有该md5值存在

图2-1 网站基本功能的展示

2.2 数据库设计

数据库中存放两张表。一张是管理员表,保存管理员的用户名和密码,另外一张表用来存放文件的信息,包括文件名、md5值、分类信息和热度值。其中文件的热度值代表受用户欢迎的程度,每次用户点击了该文件的推荐链接,数据库都会更新一次该文件的热度值。网站会根据文件的热度值筛选出最受欢迎的几个文件并且做成轮播图的形式推荐给用户。

表2-1 数据库用户表的字段结构

字段名

类型

是否能为空

主键

Username

varchar(50)

Password

varchar(50)

表2-2 数据库文件信息表的字段结构

字段名

类型

能否为空

主键

Id

Int(5)

Filename

varchar(50)

Filemd5

varchar(50)

Hot

Int(5)

2.3. 技术简介

本网站后端部分采用了基于NodeJS的实时框架SilsJS,使用mysql作为数据库,前端的框架采用了AngularJS,样式部分采用了公司自主开发的smaless样式库。MD5值的校验选择了spark-md5.js库,所有上传文件的md5值校验在前端完成,减轻了后端服务器的压力,以及避免了网络问题引起的上传文件失败。前端的模块管理采用bower,后端的模块管理采用npm。

2.3.1 SailsJS简介

Node.js是一个Javascript运行环境,并且对V8引擎进行了封装。V8引擎在编译执行js文件时的速度很快。Node利用了js事件驱动语言的优点,实现了一个易于拓展、方便开发的服务器框架。Node采用了“事件循环”的架构,这种架构有利于编写出可拓展新强的服务器框架。并发编程一般情况下很复杂而且容易出现错误,但是Node成功地解决了这些问题,并且还能提供不错的性能。

 SailsJS是一个基于NodeJS的轻量级实时mvc框架,具有高度可拓展性和易用性。Sails是Balderdash团队的产品,快速的项目构建、优秀的框架结构还有众多的扩展,都是很优秀的特性。SailsJS为了让数据模型更加实用,提供了一个新的关系数据模型。同时SailsJS自带的blueprints还能让应用的后端代码更加简洁,减轻了开发人员的负担。SailsJS还支持ORM框架Waterline,Waterline是通过Adapter关联数据库的,不同的Adapter关联不同的数据库,并且Waterline能适配绝大部分数据库,这使得SailsJS可以方便的关联绝大部分数据库。SailsJS的安装也很简单,只需要执行一个命令:

$ sudo npm install sails -g

生成一个SailsJS项目只需要执行命令:

$ sails new project

这样就生成了一个名为project的文件夹,进入project文件夹之后,执行sails lift命令,项目就可以运行起来了。

一个基本的SailsJS项目的目录结构如下图所示:

图2-2 SailsJS项目的基本目录结构

.tmp目录会在项目启动时由自动化工具grunt生成,grunt会把html、css、js等静态文件复制或者编译到tmp录下。

api/models文件下定义了数据结构,用于与数据库的连接,是mvc框架中的数据库层,代表数据实体或者数据库。api/policies定义了一个中间件,过滤掉了那些不允许访问api/controller的请求。api/controllers就是mvc框架中的业务逻辑层。api/controllers中包含了交互模型和绘制相应的逻辑视图。api/responses保存了服务器响应的逻辑。api/service的作用和api/controllers类似,但通常用于用户发出请求,但是服务器不需要给出相应的返回值,比如不依赖req和res的请求通常放在api/responses中,这样可以让api/controllers中文件的代码便于管理和方便开发者理解。

assets文件夹是用来存放一些静态文件,例如css、js和图片等等,因为sailsjs支持.less、.coffee等语法,所以assets文件夹下也可以写less和coffee文件,在项目启动时项目自带的自动化工具grunt会把他们自动编译成css和js然后保存到.tmp目录下。

config目录下包含了项目的配置,定义了数据库的连接方式,前端的请求调用controllers中不同的后端方法,以及定义了项目日志的记录等。

剩余内容已隐藏,请支付后下载全文,论文总字数:21883字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;