【Java】String经MD5加密后的32位输出

来源:互联网 发布:淘宝网汽车座套 编辑:程序博客网 时间:2024/06/07 05:20

Hankerrank的一道题,说实话我真不知道MD5的详细算法,包括字节转化为32位输出,在网上看到了好几个版本。我这里只写了一种,勉强可以理解。

import java.io.*;import java.security.*;public class Solution {    public static void main(String[] args) {        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */        String s = new Scanner(System.in).next();        MessageDigest md = null;        byte[] buff;        String st;        StringBuffer sb= new StringBuffer();        try{            md = MessageDigest.getInstance("MD5");            md.update(s.getBytes());            buff = md.digest();            int digital;            for(int i=0;i<buff.length;i++){                digital = buff[i];                if(digital<0)digital+=256;                if(digital<16)sb.append("0");                sb.append(Integer.toHexString(digital));            }        }catch(Exception e){}                System.out.println(sb.toString());    }}

参考自:http://www.weixuehao.com/archives/474