在javaweb开发的MD5加密的使用分析
MD5是消息摘要5的缩写,它可以用以下功能加密字节数组:
(1)根据加密信息不能找到加密前的信息;
加密后,结果是128。
对于给定的字节数组,无论何时使用加密算法,结果都是相同的。
(4)对于不同的字节数组,加密结果不同。
在web应用程序中,通常需要对用户密码进行加密存储,否则数据库管理员可以看到明文密码,密码也被黑客入侵。
您可以使用MD5加密用户密码,但有两种情况,您可能需要使用其他方法来处理它。
首先,我们需要确保密码在传输过程中也是安全的。此时,通常使用HTTPS。几乎所有的银行网站都是这样的。相对而言,成本相对较高。
如果网站提供了找回密码的功能,因为原来的密码在使用MD5加密后是不可用的。
MD5的应用包括以下过程:
(3)将加密的信息转换成字节数组;
(4)得到的消息摘要的对象,这是加密的;
的messgedigest对象由转换为字节数组初始化。
我们调用摘要方法进行加密,返回一个字节数组;
字节数组被转换为字符串,然后您可以使用加密字符串。
假如原来的字符串oldstr和内容lixucheng,和加密的字符串是纽世达。具体过程如下。
1。将字符串转换为字节数组。
一个字符串的GetBytes方法可用于转换,例如:
复制代码如下:字节oldbytes = oldstr.getbytes(){ };
数组中的数据:10810512011799104 101110103
2。得到messgaedigest对象
使用getInstance(String str)得到messgedigest MessageDigest对象方法和参数,例如使用MD5算法:
复制代码代码如下:消息摘要MD = messagedigest.getinstance(MD5);
三.初始化和转换后的字节数组的messgedigest对象
更新方法用于初始化,而参数是转换后的字节数组:
复制代码代码如下:md.update(oldbytes);
4。调用摘要方法进行加密
该方法返回一个字节数组:
复制代码如下:字节newbytes = md.digest(){ };
数组中的数据(16位):22 - 34 135121-1206511475127 31-2151 - 37 - 97 - 118
5,转换为字符串为16的字符串表示形式。
下面的代码完成转换:
字符串长度是结构的2倍。
char纽世达{ } =新字符{ 32 };
循环处理
对于(int = i 0;i < 16;i + +){
字节TMP = newbytes {我};
纽世达{ 2 *我} = { TMP > > > 4 hexdigits 0xf };
纽世达{ 2 *我+ 1 } = { } hexdigits TMP 0xf;
}
转换后的字符串(32位):ea0123798841724b7fde1feb33db9f8a
提示:如果需要将转换后的密码保存到数据库,则需要使用的类型是:char(32)。
完整的参考代码如下所示:
包装测试;
导入java。安全*;
类md5_test {
公共最终静态字符串MD5(字符串oldstr){
焦hexdigits { } = { 0,1,2,3,4,5,6,7,8,9,
A,B,C,D,E,F };
System.out.println(原始字符串是:+ oldstr);
{试
oldstr / /加密字符串参数
转换字节流
字节oldbytes = oldstr.getbytes(){ };
对于(字节B:oldbytes)
{
system.out.print(B +);
}
System.out.println();
获取对象
消息摘要MD = messagedigest.getinstance(MD5);
初始化
md.update(oldbytes);
操作/加密算法
字节newbytes = md.digest(){ };
对于(字节B:newbytes)
{
system.out.print(B +);
}
System.out.println();
字符串长度是结构的2倍。
char纽世达{ } =新字符{ 32 };
循环处理
对于(int = i 0;i < 16;i + +){
字节TMP = newbytes {我};
纽世达{ 2 *我} = { TMP > > > 4 hexdigits 0xf };
纽世达{ 2 *我+ 1 } = { } hexdigits TMP 0xf;
}
System.out.println(纽世达);
返回新的字符串(纽世达);
} catch(异常E){
返回null;
}
}
public static void main(String { } args){
(md5_test.md5 System.out.println(lixucheng ));
}
}
希望本文能对大家的jsp程序设计有所帮助。