Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Конвертация Array of byte(byte[]) в String.


Автор: unkis 8.6.2007, 10:51
Есть тако код
Код

MessageDigest md1 = MessageDigest.getInstance( "SHA" ); 
        byte[] digest3 = md1.digest( "abd".getBytes() ); 
        for ( byte b : digest3 ) 
          System.out.printf( "%02x", b );


который выводит на консоль следующую строку
Код

cb4cc28df0fdbe0ecf9d9662e294b118092a5735


Так вот, как мне получить эту строчку не на консоль, а в переменную.

при попытки сделать так
Код

MessageDigest md1 = MessageDigest.getInstance( "SHA" ); 
        byte[] digest3 = md1.digest( "abd".getBytes() ); 
        String str="";
        for ( byte b : digest3 )
            str+=b;
//          System.out.printf( "%02x", b );
        System.out.println(str);

получаю следующую строчку
Код

-5376-62-115-16-3-6614-49-99-10698-30-108-79249428753


так вот, как всё таки записать в переменную правельную строчку?

Автор: fixxer 8.6.2007, 11:25
Код

StringBuilder str = new StringBuilder();
Formatter formatter = new Formatter();
for (byte b : digest3) {
   str.append(formatter.format("%02x", b));
}
System.out.println(str);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)