MessageDigest messageDigest = MessageDigest.getInstance("MD5");
     messageDigest.update ("Hello World".getBytes("UTF8"));
     byte[] out = messageDigest.digest ();
     for (int i=0; i<out.length; i++) {
     System.out.println (Integer.toHexString(0xFF & out[i]));
     }=========================
怎么格式化字串,使每一个字节转为十六进制字串时输出两个字符?

解决方案 »

  1.   

    System.out.println (Integer.toHexString(out[i]/0x10)+Integer.toHexString(0x0f&out[i]));
      

  2.   

    /**
         * 二进制转字符串
         * @param b 二进制数据
         * @return 16进制的字符串
         */ 
    public static String byte2Hex(byte[] b) 
    {
    String hs="";
    StringBuffer hsb=new StringBuffer(b.length*2+16);
    String stmp="";
    for (int n=0;n<b.length;n++)
    {
    stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
    if (stmp.length()==1)
    hsb.append("0");
    hsb.append(stmp);

    }
    hs=hsb.toString();
    return hs.toUpperCase();
    }