CN105160262A - 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 - Google Patents
一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 Download PDFInfo
- Publication number
- CN105160262A CN105160262A CN201510525989.2A CN201510525989A CN105160262A CN 105160262 A CN105160262 A CN 105160262A CN 201510525989 A CN201510525989 A CN 201510525989A CN 105160262 A CN105160262 A CN 105160262A
- Authority
- CN
- China
- Prior art keywords
- information
- file
- encryption technology
- struts2
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,包括以下步骤:A1、通过Struts2框架的配置文件,在Action中获取用户上传的文件名称;A2、采用MD5加密技术对文件名进行加密处理,过程如下所示:1)信息填充,使数据位长对512求余的结果等于448;2)MD5中有四个32位被称作链接变量的整数参数,初始化这些参数,用于第一轮的运算;3)当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目;4)输出级连数据;A3、将加密后的文件名存储到数据库中。本发明便于后期维护开发、提高了文件的安全性。
Description
技术领域
本发明涉及加密技术、软件框架和计算机应用领域,尤其涉及的是一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法。
背景技术
随着互联网时代的到来,上网人们日常生活的重要组成部分,在人们的日常上网中难免会涉及到文件的上传,比如很多网站需要注册新用户并且上传本人的头像或者其他文档,有的网站则需要上传一些更加隐私的文件。互联网的普及给人们带来了极大便利的同时,也对个人信息的保护提出了更高的要求,尤其是用户上传到各个服务器端的文件,处理不当,容易被不法分子获取并且用于非正当途径,给用户造成不必要的损失。
现有的很多网站的上传文件命名方式只是采用了本文件的原名字或者加上系统时间的形式,前者对于用户文件的保护极其不利,很容易造成信息的泄露,他人知道用户上传的文件名称便可以通过一定的代码获取用户上传的文件,同时不能保证用户的文件重名问题,当用户上传文件重名就会出现很多意想不到的bug;后一种方法相对安全一些,也相对有效的避免了重名问题,但是这样做还是存在一些问题,比如当需要相关文件的时候不容易查找相应的文件,同时在保密性上也是存在一定缺陷的,因为是文件名加数字的形式,还是有可能会被查找到相关文件名的,用户的隐私还是得不到有效的保障。
Struts2框架以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,使得工程开发过程中代码的耦合度大大降低,工程的可靠性及可维护性大大提高。
MD5(Message-DigestAlgorithm5)加密算法为现在应用最广泛的哈希算法之一,广泛应用于计算机领域,该算法广泛应用于互联网网站的各种信息加密,能够将用户密码加密为128位的长整数。数据库并不明文存储用户密码,而是在用户登录时将输入密码字符串进行MD5加密,与数据库中所存储的MD5值匹配,从而降低密码数据库被盗取后用户损失的风险。
然而,传统的服务器上传文件命名方式都没有采用上述两种技术,使得用户信息的安全得不到保障,同时增加工程的复杂度和后期的开发难度。
因此,现有的服务器上传文件命名方式在用户信息安全性及后期可维护性方面存在不足,需要改进。
发明内容
为了解决传统服务器上传文件命名方式容易泄露用户信息,对后期开发不利等问题,本发明提供一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,采用Struts框架技术使相关代码更加清晰,便于后期维护开发;采用了MD5加密技术,对上传到服务器的文件名称进行加密处理,大大提高了文件的安全性,保证了用户信息不被泄露。
本发明解决其技术问题采用的技术方法是:
一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,其特征在于:所述生成方法包括以下步骤:
A1、通过Struts2框架的配置文件,在Struts2框架中用来与前端数据交互的程序中获取用户上传的文件名称;
A2、采用MD5加密技术对文件名进行加密处理,过程如下:
1)信息填充,使数据位长对512求余等于448;
2)MD5中有四个32位被称作链接变量的整数参数,分别为:a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210,初始化所述整数参数,即将上面四个链接变量复制到另外四个变量中:a到A,b到B,c到C,d到D,用于四轮循环运算的第一轮运算;
3)当设置好四个链接变量后,就开始进入四轮循环运算,循环的次数是信息中512位信息分组的数目;
4)输出级连数据;
主循环有四轮循环运算,每一轮进行16次操作,根据以下公式依次轮流对步骤2)中A、B、C和D四个整数参数中的其中三个作一次非线性函数运算,公式中X、Y、Z表示A、B、C、D中的任意三个:
其中∧表示与,∨表示或,表示非,表示异或;
然后,将所得结果加上第四个变量,以及文本的一个子分组和一个常数;再将所得结果向左环移一个不定的数,并加上A、B、C和D中之一;最后,用所得结果取代A、B、C和D中之一;
A3、将加密后的文件名存储到数据库中。
进一步,所述步骤A1中,获取用户文件名方式为:用request对象:在页面中将信息通过request类的方法将数据与一定的参数名对应,然后再在Action中通过参数名获取文件名。
或者是:所述步骤A1中,获取用户文件名方式为:用get方法获取文件名称:在页面将数据进行命名,在Action中通过get对应命名的方法将文件名获取到。
再进一步,所述步骤A2中,信息填充的方法如下:在信息的后面填充一个1,其他用0填充,直到满足A2中1)时才停止用0对信息的填充;然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度;经过这两步的处理,信息的位长等于N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。
本发明的有益效果主要表现在:本发明可以很好的保护用户文件的信息,防止用户在上传文件到服务器后因文件名过于简单而导致文件信息的泄露,从而造成不必要的损失,对文件名进行MD5加密,可以有效的保护文件的信息不被轻易获取,与此同时,采用Struts2框架,用户在页面上传文件后,通过Struts2框架中的配置文件将相应文件名传给后台,使得流程更加清晰,也使得传值更加稳定可靠。
附图说明
图1是基于Struts2和MD5加密技术生成文件名方法的流程图;
图2是Struts2框架中配置文件中接收参数并传到后台代码示意图;
具体实施方式
下面结合附图对本发明进一步描述。
参照图1和图2,一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,包括以下步骤:
A1、通过Struts2框架的配置文件,在Action(Struts2框架中用来与前端数据交互的程序)中获取用户上传的文件名称,这里提供两种基本的方式来获取用户文件名:
a.用request对象:在页面中将信息通过request类的方法将数据与一定的参数名对应,然后再在Action中通过参数名获取文件名;
b.用get方法获取文件名称:在页面将数据进行命名,在Action中通过get对应命名的方法将文件名获取到;
其中,request对象为java中用于暂时存储数据的一类对象,get方法为java后台获取前端数据的一种方法;
A2、采用MD5加密技术对文件名进行加密处理,过程如下所示:
1)信息填充,使数据位长对512求余等于448;
2)MD5中有四个32位被称作链接变量的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210,初始化这些参数,用于第一轮的运算;
3)当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目;
4)输出级连数据;
其中,信息填充的具体方法如下:在信息的后面填充一个1,其他用0填充,直到满足A2中1)时才停止用0对信息的填充;然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度;经过这两步的处理,信息的位长等于N*512+448+64=(N+1)*512,即长度恰好是512的整数倍;
其次,主循环有四轮(MD4只有三轮),每轮循环都很相似;每一轮进行16次操作,根据以下公式依次轮流对步骤2)中A、B、C和D四个整数参数中的其中三个作一次非线性函数运算,公式中X、Y、Z表示A、B、C、D中的任意三个:
其中∧表示与,∨表示或,表示非,表示异或;
然后,将所得结果加上第四个变量,以及文本的一个子分组和一个常数;再将所得结果向左环移一个不定的数,并加上A、B、C和D中之一;最后,用所得结果取代A、B、C和D中之一;
A3、将加密后的文件名存储到数据库中;
本实施例中,以**网站上传文件到服务器为例,一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,包括以下步骤:
A1、通过Struts2框架的配置文件,在Action(Struts2框架中用来与前端数据交互的程序)中获取用户上传的文件名称,这里提供两种基本的方式来获取用户文件名:
a.用request对象:在页面中将信息通过request类的方法将数据与一定的参数名对应,然后再在Action中通过参数名获取文件名;
b.用get方法获取文件名称:在页面将数据进行命名,在Action中通过get对应命名的方法将文件名获取到;
其中,request对象为java中用于暂时存储数据的一类对象,get方法为java后台获取前端数据的一种方法;
这里采用b方法,获取到的文件名为“五月份账目清单”;
A2、采用MD5加密技术对文件名进行加密处理,过程如下所示:
1)信息填充,使数据位长对512求余等于448;
2)MD5中有四个32位被称作链接变量的整数参数,分别为:a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210,初始化所述整数参数,即将上面四个链接变量复制到另外四个变量中:a到A,b到B,c到C,d到D,
用于四轮循环运算的第一轮运算;
3)当设置好这四个链接变量后,就开始进入四轮循环运算。循环的次数是信息中512位信息分组的数目;
4)这里输出级连数据这里加密后得到的文件名为“1eb31e00bd2a3451ec9187973fa40d91”;
其中,信息填充的具体方法如下:在信息的后面填充一个1,其他用0填充,直到满足A2中1)时才停止用0对信息的填充;然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度;经过这两步的处理,信息的位长等于N*512+448+64=(N+1)*512,即长度恰好是512的整数倍;
其次,主循环有四轮(MD4只有三轮),每轮循环都很相似;每一轮进行16次操作,根据以下公式依次轮流对步骤2)中A、B、C和D四个整数参数中的其中三个作一次非线性函数运算,公式中X、Y、Z表示A、B、C、D中的任意三个:
其中∧表示与,∨表示或,表示非,表示异或;
然后,将所得结果加上第四个变量,以及文本的一个子分组和一个常数;再将所得结果向左环移一个不定的数,并加上A、B、C和D中之一;最后,用所得结果取代A、B、C和D中之一,
A3、将加密后的文件名存储到数据库中。
以上阐述的是本发明给出的一个实施例表现出来的优良优化效果,显然本发明不仅适合上述实施例,在不偏离本发明基本精神及不超出本发明实质内容所涉及内容的前提下可对其做种种变化加以实施。
Claims (4)
1.一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,其特征在于:所述生成方法包括以下步骤:
A1、通过Struts2框架的配置文件,在Struts2框架中用来与前端数据交互的程序中获取用户上传的文件名称;
A2、采用MD5加密技术对文件名进行加密处理,过程如下:
1)信息填充,使数据位长对512求余等于448;
2)MD5中有四个32位被称作链接变量的整数参数,分别为:a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210,初始化所述整数参数,即将上面四个链接变量复制到另外四个变量中:a到A,b到B,c到C,d到D,用于四轮循环运算的第一轮运算;
3)当设置好四个链接变量后,就开始进入四轮循环运算,循环的次数是信息中512位信息分组的数目;
4)输出级连数据;
主循环有四轮循环运算,每一轮进行16次操作,根据以下公式依次轮流对步骤2)中A、B、C和D四个整数参数中的其中三个作一次非线性函数运算,公式中X、Y、Z表示A、B、C、D中的任意三个:
其中∧表示与,∨表示或,表示非,表示异或;
然后,将所得结果加上第四个变量,以及文本的一个子分组和一个常数;
再将所得结果向左环移一个不定的数,并加上A、B、C和D中之一;最后,
用所得结果取代A、B、C和D中之一;
A3、将加密后的文件名存储到数据库中。
2.如权利要求1所述的一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,其特征在于:所述步骤A1中,获取用户文件名方式为:用request对象:在页面中将信息通过request类的方法将数据与一定的参数名对应,然后再在Action中通过参数名获取文件名。
3.如权利要求1所述的一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,其特征在于:所述步骤A1中,获取用户文件名方式为:用get方法获取文件名称:在页面将数据进行命名,在Action中通过get对应命名的方法将文件名获取到。
4.如权利要求1~3之一所述的一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法,其特征在于:所述步骤A2中,信息填充的方法如下:在信息的后面填充一个1,其他用0填充,直到满足A2中1)时才停止用0对信息的填充;然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度;经过这两步的处理,信息的位长等于N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510525989.2A CN105160262A (zh) | 2015-08-25 | 2015-08-25 | 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510525989.2A CN105160262A (zh) | 2015-08-25 | 2015-08-25 | 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105160262A true CN105160262A (zh) | 2015-12-16 |
Family
ID=54801114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510525989.2A Pending CN105160262A (zh) | 2015-08-25 | 2015-08-25 | 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105160262A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936450A (zh) * | 2017-12-15 | 2019-06-25 | 国网冀北电力有限公司 | 面向调控运行数据的实时感知混合加解密方法及装置 |
CN112365373A (zh) * | 2020-11-10 | 2021-02-12 | 四川大学 | 一种随案电子卷宗保全和互认处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075280A (zh) * | 2007-06-26 | 2007-11-21 | 南京大学 | 防毒usb快闪存储器 |
CN101625702A (zh) * | 2009-07-03 | 2010-01-13 | 无敌科技(西安)有限公司 | 文件分配表格式数据文件的加密方法 |
CN102622561A (zh) * | 2011-01-27 | 2012-08-01 | 赛酷特(北京)信息技术有限公司 | 一种软件中调用数据的加密及解密方法 |
CN103731430A (zh) * | 2014-01-09 | 2014-04-16 | 北京哈工大计算机网络与信息安全技术研究中心 | 一种基于struts2架构文件上传安全控制方法 |
-
2015
- 2015-08-25 CN CN201510525989.2A patent/CN105160262A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075280A (zh) * | 2007-06-26 | 2007-11-21 | 南京大学 | 防毒usb快闪存储器 |
CN101625702A (zh) * | 2009-07-03 | 2010-01-13 | 无敌科技(西安)有限公司 | 文件分配表格式数据文件的加密方法 |
CN102622561A (zh) * | 2011-01-27 | 2012-08-01 | 赛酷特(北京)信息技术有限公司 | 一种软件中调用数据的加密及解密方法 |
CN103731430A (zh) * | 2014-01-09 | 2014-04-16 | 北京哈工大计算机网络与信息安全技术研究中心 | 一种基于struts2架构文件上传安全控制方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936450A (zh) * | 2017-12-15 | 2019-06-25 | 国网冀北电力有限公司 | 面向调控运行数据的实时感知混合加解密方法及装置 |
CN109936450B (zh) * | 2017-12-15 | 2022-06-14 | 国网冀北电力有限公司 | 面向调控运行数据的实时感知混合加解密方法及装置 |
CN112365373A (zh) * | 2020-11-10 | 2021-02-12 | 四川大学 | 一种随案电子卷宗保全和互认处理方法 |
CN112365373B (zh) * | 2020-11-10 | 2022-07-12 | 四川大学 | 一种随案电子卷宗保全和互认处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102833259B (zh) | 系统间数据防篡改检测方法、校验码生成方法及装置 | |
TW201610742A (zh) | 資訊加密、解密方法及裝置 | |
CN106610995B (zh) | 一种创建密文索引的方法、装置及系统 | |
Zheng et al. | Research for the application and safety of MD5 algorithm in password authentication | |
KR101989813B1 (ko) | 특정 포맷을 가지는 대체 데이터의 생성 및 검증 | |
CN106027228A (zh) | 一种网页标识的加解密方法及其加解密系统 | |
CN104899499A (zh) | 基于互联网图片搜索的Web验证码生成方法 | |
CN106469279A (zh) | 一种压缩加、解密的方法和系统 | |
WO2016165309A1 (zh) | 一种用于对密码信息进行换算和处理的方法和装置 | |
CN110717151A (zh) | 一种数字指纹处理及签名处理方法 | |
Rubin et al. | Merkelized abstract syntax trees | |
CN113922968A (zh) | 访问令牌的生成及校验方法、装置、电子设备和存储介质 | |
CN105160262A (zh) | 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 | |
Prasanna et al. | Performance analysis of md5 and sha-256 algorithms to maintain data integrity | |
CN105933120A (zh) | 一种基于Spark平台的口令哈希值恢复方法和装置 | |
CN111934987A (zh) | 一种针对手机企业微信的数据提取方法,系统以及存储介质 | |
CN103714300A (zh) | 基于分布式gpu和彩虹表的加密分析系统及其方法 | |
CN104363089A (zh) | 一种基于地理位置信息实现模糊金库的方法 | |
WO2015065189A1 (en) | Method for setting up, via an intermediate entity, a secure session between a first and a second entity, and corresponding entities and computer program products | |
CN108600159A (zh) | 一种工业控制系统信息安全防护系统 | |
CN105187770B (zh) | 一种高安全性的图像处理平台 | |
CN106156655B (zh) | 一种面向云存储的文件压缩及认证方法 | |
Wang et al. | Data secure transmission model based on compressed sensing and digital watermarking technology | |
Chen et al. | A second preimage attack on zipper hash | |
Nagesh et al. | Modeling an efficient authentic provable data possession model using legacy filter model for IOT and cloud environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151216 |
|
RJ01 | Rejection of invention patent application after publication |