2012-09-12 22 views
0

我有一個問題,在jdk 1.4而不是jdk 1.6編譯應用程序。字節到十六進制數字格式化符號找不到

String encryptedString = null; 
      byte[] bytesToBeEncrypted; 
      try { 
       // convert string to bytes using a encoding scheme 
       bytesToBeEncrypted = ren_pass.getBytes("UTF-8"); 
       MessageDigest md = MessageDigest.getInstance("MD5"); 
       byte[] theDigest = md.digest(bytesToBeEncrypted); 
       // convert each byte to a hexadecimal digit 
       Formatter formatter = new Formatter(); 

       for (int i = 0; i <= theDigest.length; i++) { 
        byte b = theDigest[i];       
        //for (byte b : theDigest) { 

    formatter.format("%02x", b); // error on this statement b cannot find symbol      
       } 
       encryptedString = formatter.toString().toLowerCase(); 
       System.out.print(encryptedString); 

      } catch (UnsupportedEncodingException eq) { 
       eq.printStackTrace(); 
      } catch (NoSuchAlgorithmException ew) { 
       ew.printStackTrace(); 
      } 

上面的代碼工作正常JDK 1.6 ......但不是在JDK 1.4 ...

它顯示錯誤符號B沒有發現......

請給我一些解決方案來糾正它...

回答

0

jdk1.4沒有java.util.Formatter,你用java.util.logging.Formatter編譯代碼嗎?

請使用Character.forDigit(byteValue,16)代替

相關問題