首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

MessageDigest应用 完成MD5加密

2012-08-13 
MessageDigest使用 完成MD5加密Java 加密技术:消息摘要。一个消息摘要就是一个数据块的数字指纹。即对一个任

MessageDigest使用 完成MD5加密

Java 加密技术:消息摘要。MessageDigest应用 完成MD5加密

一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。

消息摘要有两个基本属性:

两个不同的报文难以生成相同的摘要
难以对指定的摘要生成一个报文,而由该报文反推算出该指定的摘要
代表:美国国家标准技术研究所的SHA1和麻省理工学院Ronald Rivest提出的MD5

?

类 java.security.MessageDigest
java.lang.ObjectMessageDigest应用 完成MD5加密

参数:
input - 在摘要计算完成之前用于修改的输入值。
返回值:
结果散列值的字节数组。

toString

public// 通过某种方式传给其他人你的信息(myinfo)和摘要(digesta) 对方可以判断是否更改或传输正常
java.security.MessageDigest algb = java.security.MessageDigest
.getInstance("SHA-1");
algb.update(myinfo.getBytes());
if (algb.isEqual(digesta, algb.digest())) {
System.out.println("信息检查正常");
} else {
System.out.println("摘要不相同");
}

} catch (java.security.NoSuchAlgorithmExceptionelse
hs = hs + stmp;
}

return hs.toUpperCase();
}

}

b[n] & 0XFF?的作用是将byte转化为int。

因为0xff是整型,?byte[] b; b[index] & 0xff?向大的数据类型靠拢,就是整型了。

java中的byte?是sign的?,所以?将一个负byte强制转换成int,就会损坏原来的binary表示,例如:
byte bb=(byte) 0xf1; //11110001
printBinary((int)bb);//11111111111111111111111111110001

printBinary(bb & 0xff);//00000000000000000000000011110001

?

http://blog.sina.com.cn/s/blog_82342ce20100vjxp.html

热点排行