Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

base64

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 08.10.2011, 20:32   #1
 Старший сержант
Аватар для АнтиАмерика
 
АнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядом
Регистрация: 26.06.2010
Сообщений: 218
Популярность: 5595
Сказал(а) спасибо: 360
Поблагодарили 670 раз(а) в 222 сообщениях
Отправить сообщение для АнтиАмерика с помощью ICQ Отправить сообщение для АнтиАмерика с помощью Skype™
 
По умолчанию base64

Как декодить base 64 программно?
  Ответить с цитированием
Старый 08.10.2011, 20:57   #2
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: base64

Кодирование:
Код:
function EncodeBase64(const inStr:string):string;

  function Encode_Byte(b:Byte):char;
  const
  Base64Code:string[64]='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  begin
  Result:=Base64Code[(b and $3F)+1];
  end;

var
i:Integer;
begin
i:=1;
Result:='';
 while i<=Length(InStr) do
  begin
  Result:=Result+Encode_Byte(Byte(inStr[i]) shr 2);
  Result:=Result+Encode_Byte((Byte(inStr[i]) shl 4) or (Byte(inStr[i+1]) shr 4));
   if i+1<=Length(inStr) then
    begin
    Result:=Result+Encode_Byte((Byte(inStr[i+1]) shl 2) or (Byte(inStr[i+2]) shr 6));
    end
   else
    begin   
    Result:=Result+'=';
    end;
   if i+2<=Length(inStr) then
    begin
    Result := Result + Encode_Byte(Byte(inStr[i+2]));
    end
   else
    begin
    Result:=Result+'=';
    end; 
  Inc(i,3);
  end;
end;
Декодирование:
Код:
function DecodeBase64(const CinLine:string):string;
const
RESULT_ERROR=-2;
var
inLineIndex:Integer;
c:Char;
x:SmallInt;
c4:Word;
StoredC4:array[0..3] of SmallInt;
InLineLength:Integer;
begin
Result:='';
inLineIndex:=1;
c4:=0;
InLineLength:=Length(CinLine);
 while inLineIndex<=InLineLength do
  begin
   while (inLineIndex<=InLineLength) and (c4<4) do
    begin
    c:=CinLine[inLineIndex];
     case c of
      '+':x:=62;
      '/':x:=63;
      '0'..'9':x:=Ord(c)-(Ord('0')-52);
      '=':x:=-1;
      'A'..'Z':x:=Ord(c)-Ord('A');
      'a'..'z':x:=Ord(c)-(Ord('a')-26);
     else
      x:=RESULT_ERROR;
     end;
     if x<>RESULT_ERROR then
      begin
      StoredC4[c4]:=x;
      Inc(c4);
      end;
    Inc(inLineIndex);
    end;
   if c4=4 then
    begin
    c4:=0;
    Result:=Result+Char((StoredC4[0] shl 2) or (StoredC4[1] shr 4));
     if StoredC4[2]=-1 then
      begin
      Exit;
      Result:=Result+Char((StoredC4[1] shl 4) or (StoredC4[2] shr 2));
      end;
     if StoredC4[3]=-1 then 
      begin
      Exit;
      Result := Result + Char((StoredC4[2] shl 6) or (StoredC4[3]));
      end;    
   end;
  end;
end;
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.



Последний раз редактировалось VeTaL_UA; 08.10.2011 в 21:11.
  Ответить с цитированием
Пользователь сказал cпасибо:
АнтиАмерика (08.10.2011)
Старый 08.10.2011, 21:08   #3
 Старший сержант
Аватар для АнтиАмерика
 
АнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядом
Регистрация: 26.06.2010
Сообщений: 218
Популярность: 5595
Сказал(а) спасибо: 360
Поблагодарили 670 раз(а) в 222 сообщениях
Отправить сообщение для АнтиАмерика с помощью ICQ Отправить сообщение для АнтиАмерика с помощью Skype™
 
По умолчанию Re: base64

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Декодирование:

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Кодирование:

Перепутал..


___________________________________________



function DecodeBase64(const CinLine:string):string;
const
RESULT_ERROR=-2;
var
inLineIndex:Integer;
c:Char;
x:SmallInt;
c4:Word;
StoredC4:array[0..3] of SmallInt;
InLineLength:Integer;
begin
Result:='';
inLineIndex:=1;
c4:=0;
InLineLength:=Length(CinLine);
while inLineIndex<=InLineLength do
begin
while (inLineIndex<=InLineLength) and (c4<4) do
begin
c:=CinLine[inLineIndex];
case c of
'+':x:=62;
'/':x:=63;
'0'..'9':x:=Ord(c)-(Ord('0')-52);
'=':x:=-1;
'A'..'Z':x:=Ord(c)-Ord('A');
'a'..'z':x:=Ord(c)-(Ord('a')-26);
else
x:=RESULT_ERROR;
end;
if x<>RESULT_ERROR then
begin
StoredC4[c4]:=x;
Inc(c4);
end;
Inc(inLineIndex);
end;
if c4=4 then
begin
c4:=0;
Result:=Result+Char((StoredC4[0] shl 2) or (StoredC4[1] shr 4));
if StoredC4[2]=-1 then
begin
Exit;
Result:=Result+Char((StoredC4[1] shl 4) or (StoredC4[2] shr 2));
end;
if StoredC4[3]=-1 then
begin
Exit;
Result := Result + Char((StoredC4[2] shl 6) or (StoredC4[3]));
end;
end;
end;
end;

Плохо декодит
  Ответить с цитированием
Старый 08.10.2011, 21:14   #4
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: base64

Цитата:
Сообщение от АнтиАмерикаПосмотреть сообщение
Перепутал..


Цитата:
Сообщение от АнтиАмерикаПосмотреть сообщение
Плохо декодит

Ну что же поделать...

Посмотри [Ссылки могут видеть только зарегистрированные пользователи. ] исходник. Вдруг это лучше будет...
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Пользователь сказал cпасибо:
АнтиАмерика (08.10.2011)
Старый 08.10.2011, 21:20   #5
 Старший сержант
Аватар для АнтиАмерика
 
АнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядомАнтиАмерика в состоянии испепелить взглядом
Регистрация: 26.06.2010
Сообщений: 218
Популярность: 5595
Сказал(а) спасибо: 360
Поблагодарили 670 раз(а) в 222 сообщениях
Отправить сообщение для АнтиАмерика с помощью ICQ Отправить сообщение для АнтиАмерика с помощью Skype™
 
По умолчанию Re: base64

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Посмотри этот исходник. Вдруг это лучше будет...

Помогло, спасибо!
  Ответить с цитированием
Старый 10.10.2011, 22:04   #6
Заблокирован
 Пехотинец
Аватар для lolwut98
 
lolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражания
Регистрация: 16.07.2011
Сообщений: 97
Популярность: 2528
Сказал(а) спасибо: 61
Поблагодарили 336 раз(а) в 61 сообщениях
Отправить сообщение для lolwut98 с помощью ICQ Отправить сообщение для lolwut98 с помощью Skype™
 
По умолчанию Re: base64

ну зачем же делать отдельные функции, если всё это уже есть?

добавьте в uses модуль EncdDecd. и для кодирования/декодирования используйте encodestring/decodestring
  Ответить с цитированием
Старый 11.10.2011, 18:53   #7
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: base64

Цитата:
Сообщение от lolwut98Посмотреть сообщение
ну зачем же делать отдельные функции, если всё это уже есть?

добавьте в uses модуль EncdDecd. и для кодирования/декодирования используйте encodestring/decodestring

Ну я не люблю использовать дополнительные модули, по этому предложил такой вариант... Оба варианта правильны.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Расшифровка хешей whirpool(base64) и sha512(base64) DeathAngel Базы серверов и брут 0 08.03.2011 21:16
Хелп SHA-1(Base64) DavidBlaine Общение и обсуждение, архив Lineage 2 0 10.10.2010 00:44

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:01.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net