- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于加密技术隐私保护在WEB信息系统中应用研究
基于加密技术隐私保护在WEB信息系统中应用研究
摘要:MD5算法(Message-Digest Algorithm 5,信息-摘要算法5)是一种针对信息传输中对原始信息进行重新编列及重新组合的数学方法,是数学理论应用在计算机领域的一个典型事例。MD5算法是一种免费使用且安全的散列算法,经MD5算法处理后的密文一般不能恢复成原文,所以要破解MD5算法非常困难。在信息管理系统中,MD5一般用于用户注册口令的加密。使用MD5算法之前要先把完整的数据信息(如汉字)通过运算划分成一个个细小的定长部分,之后才能使用算法把用数字签名软件签署私人密钥后所产生的大容量信息压缩成一种保密的格式,即把一个任意长度的字节串通过MD5加密算法变成一定长度的十六进制数字字符串。
关键词:MD5算法;散列算法;数字签名
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)12-2751-02
MD5算法能将输入的不定长度信息,变换为固定长度128bits。基本方式为求余、取余、调整长度与链接变量进行循环运算,最后得出结果。
MD5运算由64次循环构成,分成4组16次。F表示非线性函数,Mi表示一个32位的输入数据,Ki表示一个32位的常数,用于完成每次不同的计算。
MD5加密算法简要描述为:将输入的任意长度的消息,以512位进行分组,不足512位的用0填充,再将每组分为16个32位的子分组,经过一系列的算法处理后,输出4个32位的子分组,将这4个分组级联成一个128位的消息摘要。
MD5加密算法步骤:
1)填充消息,使消息长度与448模512同余。至此,消息长度被扩展到N*512+448位,N为非负整数。填充方法为:在消息后面添加一个1,再补充多个0,直到消息长度恰好是512的整数倍。
2)在消息后面添加一个用64位表示的填充前的消息长度。
上述两步处理所得的消息长度=N*512+448+64=(N+1)*512,正好为512的整数倍。这样满足了后续处理中对消息数据长度的要求和规范。
3) 给四个32位的整型链接变量(Chaining Variable)赋值,依次为:A=0B=0xefcdab89,C=0x98badcfe,D=0将这四个链接变量拷贝到四个数据变量中:A复制到a,B复制到b,C复制到c,D复制到d。
4)进行消息处理。首轮循环需要进行16次操作,每次操作要对a、b、c和d 4个变量中的任意3个作一次逻辑运算,并将计算结果与未经运算的第四个变量相加。把上述运算结果向左循环移动一个不定的数,再加上a、b、c或d 四个变量中的任意一个。最后用这个结果替换a、b、c或d 四个变量中的一个。循环的累计次数是512位消息分组的总计数目。
1 基于MD5算法的用户敏感数据隐私保护模块设计
在拆迁信息管理平台中,需要对一些敏感的用户数据信息如帐号密码,身份证验证码等进行不可逆且安全的加密,下面给出部分本系统中基于MD5加密算法的信息隐私保护模块核心代码:
1)MD5 16位加密模块
// MD5 16位加密,加密后密码为大写
static string Get16Md5UpperStr(string str)
{CryptoMD5 md = new CryptoMD5();
string str1=BitConverter.ToString(md.CalculateHash(UTF8Encoding.Default.
GetBytes(str)),4,8);
str1 = str1.Replace(*, );
return str1; }
// MD5 16位加密,加密后密码为小写
static string Get16Md5LowerStr(string str)
{CryptoMD5 md = new CryptoMD5();
string str1=BitConverter.ToString(md. CalculateHash (UTF8Encoding.Default.
GetBytes(str)),4,8);
str1= str1.Replace(*, );
str1= str1.ToLower();
return str1; }
2)MD5 32位加密模块
static string UserMd5 (string str)
{ string s1 = str;
string pwd = ;
CryptoMD5 md = CryptoMD5.Create();//实例化
原创力文档


文档评论(0)