Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевод в String 
:(
    Опции темы
Zdvig
Дата 9.10.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код получает хеш из текста, но возвращает значение хеша, типа byte[]. Как получить/перевести его в String, или получить текстовую строку?

Код

byte[] data = new byte[DATA_SIZE]; 
byte[] result;
 
SHA512 shaM = new SHA512Managed(); 
result = shaM.ComputeHash(data);


--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
Hidrag
Дата 9.10.2005, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробуй так:

Код

string s = result.ToString()



--------------------
user posted image
PM WWW ICQ   Вверх
Zdvig
Дата 9.10.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подобное я делал. Возвращает "System.Byte[]", вместо значения хеша.
Единственное, что работает:

Код

string s = Convert.ToBase64String(result);


Но строка в Base64 никак ненужна...
--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
mr.DUDA
Дата 9.10.2005, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Полученный массив превратить в строку можно вот так:
Код
    public string ArrayToString(byte[] array)
    {
        char[] tmp = new char[array.Length];
        for(int i=0; i<tmp.Length; i++)
            tmp[i] = (char)array[i];
        return new string(tmp);
    }



--------------------
user posted image
PM MAIL WWW   Вверх
Void
Дата 9.10.2005, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Еще способ:
Код

byte[] result;
// ...
string hash = System.Text.Encoding.GetEncoding("ISO-8859-1").GetString(result);

Кодировку, ес-но, можно взять любую другую 8-битную.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Zdvig
Дата 10.10.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



mr.DUDA
Примерно так я хотел сделать, но незнал как записать.

В обоих прмерах выдается: 3з┴э9┤W5≥ЪЛ▄Ё╚СDыrиvы_80╕╖}Ы─yi┌≤rХэjЩ$⌠eСoр


--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
Exception
Дата 10.10.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Zdvig @ 10.10.2005, 13:11)
В обоих прмерах выдается: 3з┴э9┤W5≥ЪЛ▄Ё╚СDыrиvы_80╕╖}Ы─yi┌≤rХэjЩ$⌠eСoр

encoding другой поставь....
и код приведи полностью smile
PM   Вверх
Void
Дата 10.10.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Zdvig
А что ты ожидал? smile В SHA хэше могут встречаться любые байты, в т.ч. и непечатаемые символы. Если хочешь получить легко отображаемую строку - так и конверть в Base64.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Zdvig
Дата 10.10.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Void
Нармально отображаемый хеш SHA512, в привычном для всех виде.
--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
Exception
Дата 10.10.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Zdvig @ 10.10.2005, 18:07)
хеш SHA512

извиняюсь, не заметил задачи smile
PM   Вверх
Zdvig
Дата 10.10.2005, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

private byte[] hash;

string GenerateHashDigest(string strSource)
        {

            UnicodeEncoding uEncode = new UnicodeEncoding();

            byte[] bytProducts = uEncode.GetBytes(strSource);

            if (optSHA1.Checked) 
            {
                SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
                hash = sha1.ComputeHash(bytProducts);
            }
            else 
            {
                SHA512Managed sha512 = new SHA512Managed();
                hash = sha512.ComputeHash(bytProducts);
            }

            return ArrayToString(hash);
        }

public string ArrayToString(byte[] array)    
        {    
            char[] tmp = new char[array.Length];    
            for(int i=0; i<tmp.Length; i++)    
                tmp[i] = (char)array[i];    
            return new string(tmp);    
        }

--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

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


 




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


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

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