MD5加密:java.security.MessageDigest类中的digest()方法
MessageDigest类是一个抽象类,可以通过getInstance()方法获取实例
public byte[] digest(byte[] input)
使用指定的 byte 数组对摘要进行最后更新,然后完成摘要计算。也就是说,此方法首先调用 update(input)
,向 update
方法传递 input 数组,然后调用 digest()
。
参数:
input
- 在完成摘要计算前要更新的输入。
返回:
存放哈希值结果的 byte 数组。
getInstance(String algorithm)
返回实现指定摘要算法的 MessageDigest 对象。
algorithm
- 所请求算法的名称。
getInstance(String algorithm, Provider provider)
返回实现指定摘要算法的 MessageDigest 对象。
algorithm
- 所请求算法的名称。
provider
- 提供者。
@Test
public void demo() throws Exception{
MessageDigest md=MessageDigest.getInstance("MD5");
byte[] a="1234567".getBytes();
byte[] bs=md.digest(a);
String pwd="";
for(byte b:bs){
// Integer.toHexString(int i); 因为这里是扩展转换,把byte通过扩展转换为int类型
String s=Integer.toHexString(b & 0xff); //取该字节的最后一位(与16进制ff进行&运算)---因为一个字节是8位2进制
if(s.length()==1){
s="0"+s;
}
pwd+=s;
}
System.out.println(pwd.length());
System.out.println(pwd);
}
运行结果:
32
fcea920f7412b5da7be0cf42b8c93759