当前位置: 首页 > 工具软件 > md5s > 使用案例 >

JAVA实现MD5

公羊学义
2023-12-01

在java中实现MD5是很简单的,在包java.security有个类MessageDigest。官方文档如下
MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。

MessageDigest 对象开始被初始化。该对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算。

对于给定数量的更新数据,digest 方法只能被调用一次。digest 被调用后,MessageDigest 对象被重新设置成其初始状态。

JAVA代码如下:

import java.security.MessageDigest;

public class MyMD5 {

static char[] hex = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 
public static void main(String[] args) {
    try{
        MessageDigest md5 = MessageDigest.getInstance("MD5");//申明使用MD5算法
        md5.update("a".getBytes());//
        System.out.println("md5(a)="+byte2str(md5.digest()));
        md5.update("a".getBytes());
        md5.update("bc".getBytes());
        System.out.println("md5(abc)="+byte2str(md5.digest()));
    }catch(Exception e){
        e.printStackTrace();
    }
}

/**
 * 将字节数组转换成十六进制字符串
 * @param bytes
 * @return
 */
private static String byte2str(byte []bytes){
    int len = bytes.length;   
    StringBuffer result = new StringBuffer();    
    for (int i = 0; i < len; i++) {   
        byte byte0 = bytes[i];   
        result.append(hex[byte0 >>> 4 & 0xf]);   
        result.append(hex[byte0 & 0xf]);   
    }
    return result.toString();
}

}

 类似资料: