Base64Encoder обрезает последние 4 символа строки

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

Я работаю над клиентом 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() call возвращает строку длиной 4 символа (45 символов вместо 49).

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

1 ответ

Решение

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

Другие вопросы по тегам