Проблема с кодировкой

f0x

Client
Регистрация
07.02.2014
Сообщения
54
Благодарностей
6
Баллы
8
Помогите решить проблему с кодировкой. Всю голову уже сломал.....

Составляю сигнатуру для отправки на API одноклассников

Сигнатура представляет из себя MD5 хэш из конкатенации параметров в UTF-8

У них есть калькулятор для составления сигнатур
http://apiok.ru/wiki/pages/viewpage.action?pageId=75989046

Переменная берется из файла, который сохранен в формате utf-8

Так вот если в переменной латиница, то все ок, нормально, если кириллица, то сигнатура в зенопостере отличается от сигнатуры в калькуляторе по ссылке выше и запрос не обрабатывается, получаю ошибку что неверная сигнатура

Пробовал переменную конвертировать в виде

byte[] Data = Encoding.GetEncoding(1251).GetBytes(sig);
sig = Encoding.UTF8.GetString(Data);

ничего не получается.

Подскажите пожалуйста, в чем может быть проблема.
 
Последнее редактирование:

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
да вроде все норм

Код:
var testmd5string = "5e30b5a7e60286f9d6cca49f8db1af3c";
var stringtohash = "application_key=CBAQGCIIABABABABAcustom=пирожокmethod=test9aip1vfs04o1w384t3y4v3klsrvk826.3";

var md5 = System.Security.Cryptography.MD5.Create();
var md5hash = md5.ComputeHash(Encoding.UTF8.GetBytes(stringtohash));
var md5string = string.Concat(md5hash.Select(x => x.ToString("x2")));
return md5string == testmd5string;
 
  • Спасибо
Реакции: f0x

f0x

Client
Регистрация
07.02.2014
Сообщения
54
Благодарностей
6
Баллы
8
var md5hash = md5.ComputeHash(Encoding.UTF8.GetBytes(stringtohash));

Спасибо вот за эту строку! У меня default а не utf была
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)