Понять как происходит кодирование/раскодирование base64

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by aydar, 21 Oct 2010.

  1. aydar

    aydar Member

    Joined:
    12 Nov 2009
    Messages:
    259
    Likes Received:
    6
    Reputations:
    -2
    Вообщем ввожу мыло (pussykitty91@mail.ru) и пароль (kjehtycbq),делается гет запрос, ввида:

    addlist/email_box/cHVzc3lraXR0eTkxQG1haWwucnU=/password_box/a2plaHR5Y2Jx/provider_box/bWFpbF9ydQ==

    Нашел функцию каторая кодирует наше мыло и пароль

    Вообщем помогите разобрать ее как она кодирует наш емаил и пароль
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    млять банальный base64. Ищи функцию раскодирования. Их дохуя в инете, первый клас вторая четверть.

    Как пользоваться? А раком пользоваться, если не знаешь основ, то нехрен лесть куда не надо
     
    1 person likes this.
  3. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    http://www.delphisources.ru/pages/faq/base/base64_encode_decode.html
     
  4. aydar

    aydar Member

    Joined:
    12 Nov 2009
    Messages:
    259
    Likes Received:
    6
    Reputations:
    -2
    Спс тебе, конечно там не очень работает, но вот раб. вариант если кому нужно:

    Code:
    function EncodeBase64(Value: String): String;
    const
     b64alphabet: PChar = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
      pad: PChar = '====';
    
      function EncodeChunk(const Chunk: String): String;
      var
        W: LongWord;
        i, n: Byte;
      begin
        n := Length(Chunk); W := 0;
        for i := 0 to n - 1 do
          W := W + Ord(Chunk[i + 1]) shl ((2 - i) * 8);
        Result := b64alphabet[(W shr 18) and $3f] +
                  b64alphabet[(W shr 12) and $3f] +
                  b64alphabet[(W shr 06) and $3f] +
                  b64alphabet[(W shr 00) and $3f];
        if n <> 3 then
          Result := Copy(Result, 0, n + 1) + Copy(pad, 0, 3 - n);   //add padding when out len isn't 24 bits
      end;
    
    begin
      Result := '';
      while Length(Value) > 0 do
      begin
        Result := Result + EncodeChunk(Copy(Value, 0, 3));
        Delete(Value, 1, 3);
      end;
    end;
    
    
    
     
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    _________________________