基于加密技术的隐私保护在WEB信息系统中的应用研究
摘要:md5算法(message-digest algorithm 5,信息-摘要算法5)是一种针对信息传输中对原始信息进行重新编列及重新组合的数学方法,是数学理论应用在计算机领域的一个典型事例。md5算法是一种免费使用且安全的散列算法,经md5算法处理后的密文一般不能恢复成原文,所以要破解md5算法非常困难。在信息管理系统中,md5一般用于用户注册口令的加密。使用md5算法之前要先把完整的数据信息(如汉字)通过运算划分成一个个细小的定长部分,之后才能使用算法把用数字签名软件签署私人密钥后所产生的大容量信息压缩成一种保密的格式,即把一个任意长度的字节串通过md5加密算法变成一定长度的十六进制数字字符串。
关键词:md5算法;散列算法;数字签名
中图分类号:tp311 文献标识码:a 文章编号:1009-3044201312-2751-02
md5算法能将输入的不定长度信息,变换为固定长度128bits。基本方式为求余、取余、调整长度与链接变量进行循环运算,最后得出结果。
md5运算由64次循环构成,分成416次。f表示非线性函数,mi表示一个32位的输入数据,ki
表示一个32位的常数,用于完成每次不同的计算。
md5加密算法简要描述为:将输入的任意长度的消息,以512位进行分组,不足512位的用0填充,再将每组分为1632位的子分组,经过一系列的算法处理后,输出432位的子分组,将这4个分组级联成一个128位的消息摘要。
md5加密算法步骤:
1)填充消息,使消息长度与448512同余。至此,消息长度被扩展到n*512+448位,n为非负整数。填充方法为:在消息后面添加一个1,再补充多个0,直到消息长度恰好是512的整数倍。
2)在消息后面添加一个用64位表示的填充前的消息长度。
上述两步处理所得的消息长度=n*512+448+64=n+1*512,正好为512的整数倍。这样满足了后续处理中对消息数据长度的要求和规范。
3 给四个32位的整型链接变量(chaining variable)赋值,依次为:a=0x67452301b=0x
efcdab89c=0x98badcfed=0x10325476。将这四个链接变量拷贝到四个数据变量中:a复制到ab复制到bc复制到cd复制到d
4)进行消息处理。首轮循环需要进行16次操作,每次操作要对abcd 4个变量中的任意3个作一次逻辑运算,并将计算结果与未经运算的第四个变量相加。把上述运算结果向左循环移动一个不定的数,再加上abcd 四个变量中的任意一个。最后用这个结果替换abcd 四个变量中的一个。循环的累计次数是512位消息分组的总计数目。
1 基于md5算法的用户敏感数据隐私保护模块设计
在拆迁信息管理平台中,需要对一些敏感的用户数据信息如帐号密码,身份证验证码等进行不可逆且安全的加密,下面给出部分本系统中基于md5加密算法的信息隐私保护模块核心代码:
1md5 16位加密模块
// md5 16位加密,加密后密码为大写
static string get16md5upperstrstring str
{cryptomd5 md = new cryptomd5();
string stringmd.calculatehashutf8encoding.default.
getbytesstr)),48);
str1 = place* ““);
return str1 }
// md5 16位加密,加密后密码为小写
static string get16md5lowerstrstring str
{cryptomd5 md = new cryptomd5();
string stringmd. calculatehash utf8encoding.default.
getbytesstr)),48);
str1= place* ““);
str1= lower();
return str1 }
2md5 32位加密模块
static string usermd5 string str
{ string s1 = str
string pwd = ““
cryptomd5 md = ate();//实例化一个md5对像
// 字符串长度web加密后是一个字节类型的数组,这里要注意编码utf8/unicode等的选择
byte[] bt = md. calculatehash bytessl));
for int i = 0 i 加密技术在网络传输中的应用分为在客户端进行加密和在服务器端进行加密。在客户端加密时,客户端先对数据进行加密,再把密文传送给服务器,服务器对接收到
的密文进行解密操作。在服务器端加密数据的过程与客户端一样,亦即是先对数据进行加密后传给客户端,客户端再对密文进行解密。
通常,web网站的客户端和服务器使用网页脚本加解密数据。综合对称加密算法与非对称加密算法的优势,拆迁web系统采用如下的加密技术操作:
1)服务器收到客户端的访问请求后,通过调用相应的后台事件处理程序,根据公开密钥算法产生一组公开密钥和私有密钥,并将公开密钥作为加密密钥。之后,服务器把加密密钥和动态生成的网页传输用户端。
2)客户端收到网页后,调用公开密钥算法函数,产生一组对称密钥,把公开密钥当作加密密钥,然后传给服务器。由此建立客户端与服务器之间的加密数据传输。
3)服务器使用客户端的加密密钥进行数据加密,客户端使用自己的私有密钥对接收到的密文进行解密。
4)客户端使用服务器的加密密钥进行数据加密,服务器使用自己的私有密钥对接收到的密文进行解密。
由于客户端和服务器端所使用的密码都是由算法动态获得,因此所用的密码只在本次通信中有效。这样极大地提高了传输数据的安全性和有效性,解决了密钥管理难的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。