Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод массива байт в строку 
:(
    Опции темы
JulT
Дата 15.3.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



Есть вот такое значение: [B@8eae04
как мне его в строку перевести, чтобы было читаемо, после перевода должна получиться строка типа: mypassword, т.е. за [B@8eae04 скрывается пароль пользователя. smile
PM MAIL   Вверх
batigoal
Дата 15.3.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Не понял вопроса. А как ты получила из mypassword значение [B@8eae04?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
JulT
Дата 15.3.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



В LDAP хранятся значения (фио, пароль и т.д.), когда выкачиваю пароль оттуда, то он имеет вид [B@8eae04
PM MAIL   Вверх
LSD
Дата 15.3.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код
new String(data, "<encoding>")



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
JulT
Дата 15.3.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



Цитата(LSD @ 15.3.2006, 15:02)
Код
new String(data, "<encoding>")

Но у меня нету data в чистом виде
Я делаю так
Код

Object obj=e2.next();                              
vectorSmall.add(obj);

т.е. я получаю объект obj, а потом записываю его в vectorSmall, когда распечатываю потом значения из vectorSmall получаю такие вот значения:
Код

value is vectorSmall=New, unknown, [email protected],[B@d5cabc
value is vectorSmall=New, unknown, [email protected],  [B@1a3e41f
value is vectorSmall=New, unknown, [email protected], [B@1e4eb5b

ну это же полный бред: [B@1e4eb5b, [B@1a3e41f, [B@d5cabc
PM MAIL   Вверх
powerOn
Дата 15.3.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата

т.е. я получаю объект obj, а потом записываю его в vectorSmall, когда распечатываю потом значения из vectorSmall получаю такие вот значения:


Приведи код распечатки.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
redrick
Дата 15.3.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



JulT, знаете, эти вот штуки [B@1e4eb5b, [B@1a3e41f, [B@d5cabc очень похожи на Object.toString()
т.е. Integer.toHexString(hashCode())

может тебе там возвращают какой то объект с этим пассвордом ? тогда нужно кастануть его к его реальному типу и вызвать там какой нибудь метод для выковыривания данных


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
sergejzr
Дата 15.3.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Вот тебе для тренировки smile Вроде есть всё, в чём у тебя вопросы были
Код

try 
{
 String cipher="ФИО, пароль и ещё много всего";
 System.out.println("do obrabotki: "+cipher);

 byte cipher_bytes[] = cipher.getBytes();

 Vector conti=new Vector();
 conti.add(cipher_bytes[]);
 cipher_bytes=(byte[])conti.elementAt(0);

 cipher=new String(cipher_bytes, "cp1256");
 System.out.println("Posle obrabotki: "+cipher);

} catch(Exception e)
{
 e.printStackTrace();
}


PS: Код писал "на коленке" возможно есть синтакт. или ещё какие нибудь мелкие ошибки.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
JulT
Дата 15.3.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



Код

Attributes match = new BasicAttributes(true);
                         String[] ID = {"mailRoutingAddress", "userPassword"};
            match.put(new BasicAttribute("MTUset",MTUSET.trim()));                       
                            for(int j=0;j<LIST_OU_FA.size();j++){
     NamingEnumeration faNum = ctx.search(LIST_OU_FA.elementAt(j).toString().trim()+",ou=ports",match,ID);
                  while (faNum.hasMoreElements()) {
                     SearchResult sr2 = (SearchResult)faNum.next();
                        for (NamingEnumeration ae2 = sr2.getAttributes().getAll();ae2.hasMore();) {
                                        Attribute attr2 = (Attribute)ae2.next();
                         for (NamingEnumeration e2 = attr2.getAll(); e2.hasMore();
                              vectorSmall.add(e2.next()));
                                    }
                                 }
                             }
 for(int p=0;p<vectorSmall.size();p++){
                            System.out.println("VALUE="+vectorSmall.elementAt(p));
                           }

Получаю:
Код

VALUE=000b.db77.6883
VALUE=10.101.1.52
VALUE=Fa2/0/3
VALUE=10.100.0.119
VALUE=Wed Mar 15 12:32:00 2006 
VALUE=000-00
VALUE=none
VALUE=1913
VALUE=floor-19
VALUE=floor-port-set
VALUE=19-070
VALUE=201
VALUE=unknown
[email protected]
VALUE=[B@11dde0c

PM MAIL   Вверх
LSD
Дата 15.3.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(JulT @ 15.3.2006, 15:22 Найти цитируемый пост)
ну это же полный бред: [B@1e4eb5b, [B@1a3e41f, [B@d5cabc

[B@ - так выглядит toString() у byte[], просто приведи Object к byte[].


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
JulT
Дата 15.3.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



Цитата(LSD @ 15.3.2006, 15:44)
Цитата(JulT @  15.3.2006,  15:22 Найти цитируемый пост)
ну это же полный бред: [B@1e4eb5b, [B@1a3e41f, [B@d5cabc

[B@ - так выглядит toString() у byte[], просто приведи Object к byte[].

Простите, но не знаю как привести Object k byte[] smile
еще раз извините smile
PM MAIL   Вверх
powerOn
Дата 15.3.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Я так понимаю, что каждый 15-й элемент выводит "казябрики" поскольку
является byte [].
вот каждый 15-й к элемент и нужно явно приводить типу String, как LSD
показал

Цитата

код Java
1: new String(data, "<encoding>")


<encoding>- кодовая страница, например cp866 или cp1251....
data - vectorSmall.elementAt(p) - у тебя будет очередной 15 элемент

для каждого "казябра-элемента".
Код

new String(vectorSmall.elementAt(p), "cp866");



( простите, за антинаучную речь............ smile )




--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
JulT
Дата 15.3.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



Цитата(sergej.z @ 15.3.2006, 15:34)
Вот тебе для тренировки smile Вроде есть всё, в чём у тебя вопросы были
Код

try 
{
 String cipher="ФИО, пароль и ещё много всего";
 System.out.println("do obrabotki: "+cipher);

 byte cipher_bytes[] = cipher.getBytes();

 Vector conti=new Vector();
 conti.add(cipher_bytes[]);
 cipher_bytes=(byte[])conti.elementAt(0);

 cipher=new String(cipher_bytes, "cp1256");
 System.out.println("Posle obrabotki: "+cipher);

} catch(Exception e)
{
 e.printStackTrace();
}


PS: Код писал "на коленке" возможно есть синтакт. или ещё какие нибудь мелкие ошибки.

Когда пишу как вы сказали
Код

 String cipher="[B@8eae04";
  System.out.println("do obrabotki: "+cipher);
  byte cipher_bytes[] = cipher.getBytes();
  Vector conti=new Vector();
  conti.add(cipher_bytes);
  cipher_bytes=(byte[])conti.elementAt(0);
  cipher=new String(cipher_bytes, "cp1256");
  System.out.println("Posle obrabotki: "+cipher);

Выводит такое:
Код

do obrabotki:[B@8eae04
Posle obrabotki:[B@8eae04

PM MAIL   Вверх
LSD
Дата 15.3.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код
Object obj = e2.next();
if(obj instanceof byte[])
{
  byte[] data = (byte[]) obj;
  vectorSmall.add(new String(data, "UTF-8"));
}
else
{
  vectorSmall.add(obj);
}

Единственно но, это узнать какую кодировку использует LDAP сервер. Скорее всего, это или UTF-8, или UTF-16.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
JulT
Дата 15.3.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: 1
Всего: 1



Цитата(LSD @ 15.3.2006, 15:58)
Код
Object obj = e2.next();
if(obj instanceof byte[])
{
  byte[] data = (byte[]) obj;
  vectorSmall.add(new String(data, "UTF-8"));
}
else
{
  vectorSmall.add(obj);
}

Единственно но, это узнать какую кодировку использует LDAP сервер. Скорее всего, это или UTF-8, или UTF-16.

щас попробую ваш вариант
что касается кодировки, то админ говорит, что там base64 какая-то
Добавлено @ 16:16
попробовала utf-16, выдало заместь паролей знаки ????
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1056 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.