Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2014, 19:12   #1
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию Склейка двух base64 строк

Имеются две строки, кодированные base64. Необходимо склеить их в одну строчку не производя декодирования. Естественно чтоб выходную строку я мог раскодировать. У кого какие мысли?
doktor255 вне форума Ответить с цитированием
Старый 05.05.2014, 19:58   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если первая строка не оканчивается на "=", то подойдёт просто конкатенирование, а если оканчивается, то без перекодирования "кончика" первой строки и всей второй строки даже и не знаю, как обойтись.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.05.2014 в 20:19.
BDA вне форума Ответить с цитированием
Старый 05.05.2014, 20:37   #3
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Вот у меня как раз с этими окончаниями и проблема. Строки разбиты непонятно как. Если просто состыковать их и раскодировать, то в точке склейки получаю нулевые биты. Если убрать '=', то получаю мусор.

Последний раз редактировалось doktor255; 05.05.2014 в 20:57.
doktor255 вне форума Ответить с цитированием
Старый 05.05.2014, 21:06   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если на конце есть одно или два '=', то нужно взять последние 4 символа первой строки, декодировать, взять вторую строку, декодировать, соединить, закодировать, приклеить вместо тех взятых 4 символов. Без декодирования вряд ли получится, ведь байты исходных данных "поедут" (во второй строке они должны будут оказаться на других местах в буфере кодирования 24битном - base64).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.05.2014, 21:48   #5
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

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

Код:
0LPQuC4g0JLQvtC30LzQvtC20L3Qvg==

LCDRgtGLINGD0LbQtSDRgdGC0LDQuyDQu9GD

Последний раз редактировалось doktor255; 05.05.2014 в 22:05.
doktor255 вне форума Ответить с цитированием
Старый 05.05.2014, 22:02   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если исходный бинарный файл закодирован по кускам, то декодирование и склейка должна нормально пройти. Или при декодировании что-то не то, или при кодировании некая хитрость применена
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.05.2014, 22:07   #7
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Если исходный бинарный файл закодирован по кускам, то декодирование и склейка должна нормально пройти
Выше написал пример, проверь, и скажи мне, нормально закодирован текст, или хитро.
doktor255 вне форума Ответить с цитированием
Старый 05.05.2014, 22:11   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Да вроде обычный UTF8 текст.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.05.2014, 22:15   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

D7 так раскодировал
Код:
ги. Возможно
, ты уже стал луно
И
Код:
ги. Возможно
, ты уже стал луно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.05.2014 в 22:19.
Аватар вне форума Ответить с цитированием
Старый 05.05.2014, 22:17   #10
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

А теперь открой это в Notepad++ и узри нулевые байты в месте склейки.
Изображения
Тип файла: png Безымянный.png (1.2 Кб, 57 просмотров)

Последний раз редактировалось doktor255; 05.05.2014 в 22:29.
doktor255 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строк abramov Помощь студентам 2 03.12.2013 10:15
.htaccess склейка адресов hon PHP 0 03.04.2013 22:46
Склейка двух проэктов Pirotexnik C# (си шарп) 7 29.09.2012 00:47
Пересечение двух строк DarkMage Общие вопросы C/C++ 5 18.04.2010 18:27