一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法

文档序号:8943342阅读:1116来源:国知局
一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法
【技术领域】
[0001] 本发明涉及加密技术、软件框架和计算机应用领域,尤其涉及的是一种基于 Struts2框架和MD5加密技术的服务器上传文件命名方法。
【背景技术】
[0002] 随着互联网时代的到来,上网人们日常生活的重要组成部分,在人们的日常上网 中难免会涉及到文件的上传,比如很多网站需要注册新用户并且上传本人的头像或者其他 文档,有的网站则需要上传一些更加隐私的文件。互联网的普及给人们带来了极大便利的 同时,也对个人信息的保护提出了更高的要求,尤其是用户上传到各个服务器端的文件,处 理不当,容易被不法分子获取并且用于非正当途径,给用户造成不必要的损失。
[0003] 现有的很多网站的上传文件命名方式只是采用了本文件的原名字或者加上系统 时间的形式,前者对于用户文件的保护极其不利,很容易造成信息的泄露,他人知道用户上 传的文件名称便可以通过一定的代码获取用户上传的文件,同时不能保证用户的文件重名 问题,当用户上传文件重名就会出现很多意想不到的bug ;后一种方法相对安全一些,也相 对有效的避免了重名问题,但是这样做还是存在一些问题,比如当需要相关文件的时候不 容易查找相应的文件,同时在保密性上也是存在一定缺陷的,因为是文件名加数字的形式, 还是有可能会被查找到相关文件名的,用户的隐私还是得不到有效的保障。
[0004] Struts 2框架以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的 设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,使得工程开发过程中代码的 耦合度大大降低,工程的可靠性及可维护性大大提高。
[0005] MD5 (Message-Digest Algorithm 5)加密算法为现在应用最广泛的哈希算法之 一,广泛应用于计算机领域,该算法广泛应用于互联网网站的各种信息加密,能够将用户密 码加密为128位的长整数。数据库并不明文存储用户密码,而是在用户登录时将输入密码 字符串进行MD5加密,与数据库中所存储的MD5值匹配,从而降低密码数据库被盗取后用户 损失的风险。
[0006] 然而,传统的服务器上传文件命名方式都没有采用上述两种技术,使得用户信息 的安全得不到保障,同时增加工程的复杂度和后期的开发难度。
[0007] 因此,现有的服务器上传文件命名方式在用户信息安全性及后期可维护性方面存 在不足,需要改进。

【发明内容】

[0008] 为了解决传统服务器上传文件命名方式容易泄露用户信息,对后期开发不利等问 题,本发明提供一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,采用 Struts框架技术使相关代码更加清晰,便于后期维护开发;采用了 MD5加密技术,对上传到 服务器的文件名称进行加密处理,大大提高了文件的安全性,保证了用户信息不被泄露。
[0009] 本发明解决其技术问题采用的技术方法是:
[0010] 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,其特征在于: 所述生成方法包括以下步骤:
[0011] AU通过Struts2框架的配置文件,在Struts2框架中用来与前端数据交互的程序 中获取用户上传的文件名称;
[0012] A2、采用MD5加密技术对文件名进行加密处理,过程如下:
[0013] 1)信息填充,使数据位长对512求余等于448 ;
[0014] 2)MD5中有四个32位被称作链接变量的整数参数,分别为:a = 0x01234567, b = 0x89abcdef,c = 0xfedcba98, d = 0x76543210,初始化所述整数参数,即将上面四个链接变 量复制到另外四个变量中:a到A,b到B,c到C,d到D,用于四轮循环运算的第一轮运算;
[0015] 3)当设置好四个链接变量后,就开始进入四轮循环运算,循环的次数是信息中 512位信息分组的数目;
[0016] 4)输出级连数据;
[0017] 主循环有四轮循环运算,每一轮进行16次操作,根据以下公式依次轮流对步骤2) 中A、B、C和D四个整数参数中的其中三个作一次非线性函数运算,公式中X、Y、Z表示A、 B、C、D中的任意三个:
[0018]
[0019]
[0020]
[0021]
[0022] 其中Λ表示与,V表示或,表示非,?表示异或;
[0023] 然后,将所得结果加上第四个变量,以及文本的一个子分组和一个常数;再将所得 结果向左环移一个不定的数,并加上A、B、C和D中之一;最后,用所得结果取代A、B、C和D 中之一;
[0024] A3、将加密后的文件名存储到数据库中。
[0025] 进一步,所述步骤Al中,获取用户文件名方式为:用request对象:在页面中将信 息通过request类的方法将数据与一定的参数名对应,然后再在Action中通过参数名获取 文件名。
[0026] 或者是:所述步骤Al中,获取用户文件名方式为:用get方法获取文件名称:在页 面将数据进行命名,在Action中通过get对应命名的方法将文件名获取到。
[0027] 再进一步,所述步骤A2中,信息填充的方法如下:在信息的后面填充一个1,其他 用〇填充,直到满足A2中1)时才停止用0对信息的填充;然后,在这个结果后面附加一个 以64位二进制表示的填充前信息长度;经过这两步的处理,信息的位长等于N*512+448+64 =(N+1) *512,即长度恰好是512的整数倍。
[0028] 本发明的有益效果主要表现在:本发明可以很好的保护用户文件的信息,防止用 户在上传文件到服务器后因文件名过于简单而导致文件信息的泄露,从而造成不必要的 损失,对文件名进行MD5加密,可以有效的保护文件的信息不被轻易获取,与此同时,采用 Struts2框架,用户在页面上传文件后,通过Struts2框架中的配置文件将相应文件名传给 后台,使得流程更加清晰,也使得传值更加稳定可靠。
【附图说明】
[0029] 图1是基于Struts2和MD5加密技术生成文件名方法的流程图;
[0030] 图2是Struts2框架中配置文件中接收参数并传到后台代码示意图;
【具体实施方式】
[0031] 下面结合附图对本发明进一步描述。
[0032] 参照图1和图2, 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方 法,包括以下步骤:
[0033] A1、通过Struts2框架的配置文件,在Action(Struts2框架中用来与前端数据交 互的程序)中获取用户上传的文件名称,这里提供两种基本的方式来获取用户文件名:
[0034] a.用request对象:在页面中将信息通过request类的方法将数据与一定的参数 名对应,然后再在Action中通过参数名获取文件名;
[0035] b.用get方法获取文件名称:在页面将数据进行命名,在Action中通过get对应 命名的方法将文件名获取到;
[0036] 其中,request对象为java中用于暂时存储数据的一类对象,get方法为java后 台获取前端数据的一种方法;
[0037] A2、采用MD5加密技术对文件名进行加密处理,过程如下所示:
[0038] 1)信息填充,使数据位长对512求余等于448 ;
[0039] 2)MD5中有四个32位被称作链接变量的整数参数,他们分别为:A = 0x01234567, B = 0x89abcdef,C = 0xfedcba98, D = 0x76543210,初始化这些参数,用于第一轮的运算;
[0040] 3)当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是 信息中512位信息分组的数目;
[0041] 4)输出级连数据;
[0042] 其中,信息填充的具体方法如下:在信息的后面填充一
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1