请看以下代码,好像不行,问题在哪?谢谢!import java.security.*;class t3
 {public static void main(String args[])
   {try
     {MessageDigest md=MessageDigest.getInstance("MD5");
      byte c[],b[]=new byte[100]; int i;
      for(i=0;i<100;i++) b[i]=(byte)i;
      c=md.digest(b);   System.out.println(new String(c));
     }
    catch(Exception e) {System.out.println(e.toString());}  
   }
 }

解决方案 »

  1.   

    import java.security.*;class t3{
    private final static String[] hexDigits = {
      "0", "1", "2", "3", "4", "5", "6", "7",
      "8", "9", "a", "b", "c", "d", "e", "f"};

    private static String byteToHexString(byte b) {
      int n = b;
      if (n < 0)
          n = 256 + n;
      int d1 = n / 16;
      int d2 = n % 16;
      return hexDigits[d1] + hexDigits[d2];
    }

    public static void main(String args[]){
    try{
    MessageDigest md=MessageDigest.getInstance("MD5");
    byte c[],b[]=new byte[100]; 
    int i;

    for(i=0;i<100;i++) b[i]=(byte)i;

    c=md.digest(b);   

    StringBuffer resultSb = new StringBuffer();
    for (i = 0; i < c.length; i++) {
          resultSb.append(byteToHexString(c[i]));
    }
    System.out.println(resultSb);
          
        }
        catch(Exception e) {
         //System.out.println(e.toString());
        }  
       }
     }
      

  2.   

    原来如此,API里好象没说啊
    谢谢zebra007(呼呼) !
      

  3.   


    public final static String MD5(String s){
    char hexDigits[] = {
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    try {
    byte[] strTemp = s.getBytes();
    MessageDigest mdTemp = MessageDigest.getInstance("MD5");
    mdTemp.update(strTemp);
    byte[] md = mdTemp.digest();
    int j = md.length;
    char str[] = new char[j * 2];
    int k = 0;
    for (int i = 0; i < j; i++) {
    byte byte0 = md[i];
    str[k++] = hexDigits[byte0 >>> 4 & 0xf];
    str[k++] = hexDigits[byte0 & 0xf];
    }
    return new String(str);
    } catch (Exception e){
    return null;

    }