parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

base64 utf8 - что-то из этого в Парсере не работает

agat 28.12.2006 16:30

Даже не знаю с чего начать.

Короче, кто работал с OpenSSL, тот с процессом знаком. Формируется набор данных, и подписывается своим личным ключем. Далее данные и подпись пересылаются на сервер, там используя копию моего ключа сервер проверяет, чтобы данные были именно от меня, чтобы никто их не попортил.

Так вот. Собираю я данные в цеочку, подписываю внешним экзешником openssl.exe - результат - бинарная строка. Кодирую строку в base64, и посылаю на сервер. Проблема в том, что подпись валидная 3 раза на 10 попыток - 7 раз подпись не валидидтся. Думал проблема на серваке, куда я посылаю данные - позвонил - сказали, что работают больше 2 лет - и все у них работает отлично.
Начал искать проблему у себя. Подписываю данные и тут же их проверяю своим же ключем. И что вы думаете? Проблема таки у меня! Думал, может это экзешник глючит. Написал тривиальный батник - прогнал экзешник - 23 попытки - все валидные. И вот ту я задумался.

Кодировка сайта utf8. Результат подписывания - бинарная строка. Я ее кодирую в base64, потом передаю обратно Парсеру, раскодирую в бинари - и экзешником проверяю. Вот где-то на одном из этих этапов лежат грабли. У кого какие мысли? Может ли проблема быть в base64? Или что нить с utf8 не клеится?

Пробовал кодировать Перлом - результат тот же. Т.е. Парсер кодит все нормально. МДумал, может при выводе в браузер Парсер преобразовывает спец-символы - пробовал таинтить/антаинтить во всех вариациях - результат тот же.

Можете потестить - http://qha.com.ua/_test.html