0

jdk1.6ではなくjdk1.4でアプリケーションをコンパイルするのに問題があります。

    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();
            }

上記のコードはjdk1.6では正常に機能しますが、jdk1.4では機能しません...

エラー記号bが見つかりません...

それを修正するための解決策を教えてください...

4

1 に答える 1

0

jdk1.4 には java.util.Formatter がありません。コードを java.util.logging.Formatter でコンパイルしましたか?

代わりに Character.forDigit(byteValue, 16) を使用してください

于 2012-09-12T11:15:53.593 に答える