Java MD5 Hashing Example

来源:互联网 发布:ubuntu 开机启动命令 编辑:程序博客网 时间:2024/06/07 07:18

MD5 is a widely used hashing algorithm in many companies and industries, here are two examples for the MD5 implementation.

1. File checksum with MD5

It will use MD5 hashing algorithm to generate a checksum for file “c:\\loging.log”.

package com.mkyong.test; import java.io.FileInputStream;import java.security.MessageDigest; public class MD5CheckSumExample {    public static void main(String[] args)throws Exception    {        MessageDigest md = MessageDigest.getInstance("MD5");        FileInputStream fis = new FileInputStream("c:\\loging.log");         byte[] dataBytes = new byte[1024];         int nread = 0;         while ((nread = fis.read(dataBytes)) != -1) {          md.update(dataBytes, 0, nread);        };        byte[] mdbytes = md.digest();         //convert the byte to hex format method 1        StringBuffer sb = new StringBuffer();        for (int i = 0; i < mdbytes.length; i++) {          sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));        }         System.out.println("Digest(in hex format):: " + sb.toString());         //convert the byte to hex format method 2        StringBuffer hexString = new StringBuffer();    for (int i=0;i<mdbytes.length;i++) {    String hex=Integer.toHexString(0xff & mdbytes[i]);        if(hex.length()==1) hexString.append('0');        hexString.append(hex);    }    System.out.println("Digest(in hex format):: " + hexString.toString());    }}
Output
Digest(in hex format):: e72c504dc16c8fcd2fe8c74bb492affaDigest(in hex format):: e72c504dc16c8fcd2fe8c74bb492affa

2. Hashing String with MD5

It will use MD5 hashing algorithm to generate a hash value for a password “123456″.

package com.mkyong.test; import java.security.MessageDigest; public class MD5HashingExample {    public static void main(String[] args)throws Exception    {    String password = "123456";         MessageDigest md = MessageDigest.getInstance("MD5");        md.update(password.getBytes());         byte byteData[] = md.digest();         //convert the byte to hex format method 1        StringBuffer sb = new StringBuffer();        for (int i = 0; i < byteData.length; i++) {         sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));        }         System.out.println("Digest(in hex format):: " + sb.toString());         //convert the byte to hex format method 2        StringBuffer hexString = new StringBuffer();    for (int i=0;i<byteData.length;i++) {    String hex=Integer.toHexString(0xff & byteData[i]);        if(hex.length()==1) hexString.append('0');        hexString.append(hex);    }    System.out.println("Digest(in hex format):: " + hexString.toString());    }}
Output
Digest(in hex format):: e10adc3949ba59abbe56e057f20f883eDigest(in hex format):: e10adc3949ba59abbe56e057f20f883e



原创粉丝点击