Base64Encoder обрезает последние 4 символа строки - PullRequest
0 голосов
/ 01 декабря 2011

Редактировать Полностью изменив вопрос, обнаружив, что проблема была в другом месте приложения.

Я работаю над клиентом Heroku во Flex и сейчас пытаюсь создать инструмент аутентификации.Heroku использует базовую HTTP-аутентификацию, поэтому я настроил свой класс User для хранения электронной почты и пароля и предоставил метод, который возвращает закодированное в base64 строковое представление электронной почты и пароля, разделенных двоеточием.Однако кодировщик обрезает последние 4 символа в строке (проверяется путем кодирования той же строки через кодировщик openssl, встроенный в * Nix. Код, который я использую для кодирования значений, выглядит следующим образом:

public function getAuthString():String{
    var encoder:Base64Encoder = new Base64Encoder();
    encoder.insertNewLines = false;
    encoder.encode(email + ':' + password);
    trace(email + ':' + password);
    trace(encoder.toString());
    return encoder.toString();
}

Трассировка электронной почты и пароля вместе, является правильной, но вызов encoder.toString() возвращает строку длиной 4 символа (45 символов вместо 49).

Кто-нибудь еще сталкивался с этой проблемойраньше? Если да, то как ты это исправил?

1 Ответ

0 голосов
/ 02 декабря 2011

Реализация ActionScript работает должным образом.Реализация openssl предполагает новую строку.Дополнительные четыре символа, которые вы видите, являются символом новой строки.

...