技术点-MD5密码加密-32/16 位

来源:互联网 发布:非平衡面板数据 编辑:程序博客网 时间:2024/06/07 16:56
package cn.com.pass;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class SendMD5 {    public static void main(String[] args) {        printMD5("abcABC");    }  private static String printMD5(String password) {    //存放最终结果    String result = "";        try {        //选择加密方式        MessageDigest md = MessageDigest.getInstance("MD5");        //将密码分析成字节的形式        md.update(password.getBytes());        byte b[] = md.digest();        int i;        StringBuffer buf = new StringBuffer("");        for (int offset = 0; offset < b.length; offset++) {            i = b[offset];            if (i < 0)                i += 256;            if (i < 16)                buf.append("0");            buf.append(Integer.toHexString(i));        }        result = buf.toString();        //32,16位密码打印        System.out.println("MD5(" + password + ",32) = " + result);        System.out.println("MD5(" + password + ",16) = " + buf.toString().substring(8, 24));        } catch (NoSuchAlgorithmException e) {        System.out.println(e);        e.printStackTrace();    }    return result;  }}

对应输出结果:

MD5(abcABC,32) = 0ace325545119ac99f35a58e04ac2df1MD5(abcABC,16) = 45119ac99f35a58e
原创粉丝点击