Крипто-форум crprogram.16mb.com

Програмування на Object Pascal, Lazarus, криптографія, криптоаналіз, шифри, вихідні коди, вирішення задач, приклади програм

Часовий пояс: UTC десь + 2 години




Розпочати нову тему Відповісти  [ 5 повідомлень ] 
Автор Повідомлення
 Заголовок повідомлення: Base64
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 23
Base64- це група схем кодування двійкових даних у форматі ASCII.
Бейс64 кодує 8-бітову інформацію у 6 бітовий код.


Base64 скаладається з 64 шестибітових кодів.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Base64
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 23
Значення - код base64
Код:
0 - A
1 - B
2 - C
3 - D
4 - E
5 - F
6 - G
7 - H
8 - I
9 - J
10 - K
11 - L
12 - M
13 - N
14 - O
15 - P
16 - Q
17 - R
18 - S
19 - T
20 - U
21 - V
22 - W
23 - X
24 - Y
25 - Z
26 - a
27 - b
28 - c
29 - d
30 - e
31 - f
32 - g
33 - h
34 - i
35 - j
36 - k
37 - l
38 - m
39 - n
40 - o
41 - p
42 - q
43 - r
44 - s
45 - t
46 - u
47 - v
48 - w
49 - x
50 - y
51 - z
52 - 0
53 - 1
54 - 2
55 - 3
56 - 4
57 - 5
58 - 6
59 - 7
60 - 8
61 - 9
62 - +
63 - /


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Base64
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Перетворення тексту в base64:
Код:
function TxtToBase64(const s: string): string;
var
  i,zx,zy,zz: Integer;
  a,b: Integer;
const
  Base64: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
begin
  Result := '';
  a:=1;
  b:=0;
  for i := 1 to (Length(s) div 3) do
  begin

    zx := Ord(s[a]);
    zy := Ord(s[a+1]);
    zz := Ord(s[a+2]);

    a:=a+3;

    Result := Result+base64[(zx shr 2)and $3F+1];
    Result := Result+base64[((zx shl 4)and $30) or ((zy shr 4)and $0F)+1];
    Result := Result+base64[((zy shl 2)and $3C) or ((zz shr 6)and $03)+1];
    Result := Result+base64[zz and $3F+1];

    b:=b+4;
    if(b = 76)then
    begin
       b:=0;

       Result := Result+#13#10;
    end;
  end;
  if (Length(s) mod 3)=1 then
  begin
    zx := Ord(s[a]);

    Result := Result+base64[(zx shr 2)and $3F+1];
    Result := Result+base64[(zx shl 4)and $30+1];

    Result := Result+'=';
    Result := Result+'=';

  end;
  if (Length(s) mod 3)=2 then
  begin
    zx := Ord(s[a]);
    zy := Ord(s[a+1]);

    Result := Result+ base64[(zx shr 2)and $3F+1];
    Result := Result+ base64[((zx shl 4)and $30) or ((zy shr 4)and $0F)+1];
    Result := Result+base64[(zy shl 2)and $3C+1];

    Result := Result+ '=';
  end;
end;


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Base64
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Перетворення з base64 в текст:
Код:
function Base64ToText(const s: string): string;
var
  i,a,b: Integer;
  zx,zy,zz,za: Integer;
const
  Base64: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
begin
  Result := '';
  b:=1;
  a:=Length(s);

  if s[a]='='then a:=a-1;
  if s[a]='='then a:=a-1;

  for i:=1 to a div 4 do
  begin

    zx:=Pos(s[b],Base64)-1;
    zy:=Pos(s[b+1],Base64)-1;
    zz:=Pos(s[b+2],Base64)-1;
    c4:=Pos(s[b+3],Base64)-1;

    b:=b+4;

    Result:=Result+Chr(((zx shl 2)and $FC)or((zy shr 4)and $3));
    Result:=Result+Chr(((zy shl 4)and $F0)or((zz shr 2)and $0F));
    Result:=Result+Chr(((zz shl 6)and $C0)or za);

  end;
  if a mod 4=2 then
  begin
    zx:=Pos(s[b],Base64)-1;
    zy:=Pos(s[b+1],Base64)-1;

    Result:=Result+Chr(((zx shl 2)and $FC)or((zy shr 4)and $3));
  end;

  if a mod 4=3 then
  begin
    zx:=Pos(s[b],Base64)-1;
    zy:=Pos(s[b+1],Base64)-1;
    zz:=Pos(s[b+2],Base64)-1;
   
    Result:=Result+Chr(((zx shl 2)and $FC)or((zy shr 4)and $3));
    Result:=Result+Chr(((zy shl 4)and $F0)or((zz shr 2)and $0F));
  end;

end;



Повернутися наверх
  
 
 Заголовок повідомлення: Re: Base64
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 282
Приклад,

текст
Цитата:
text_text_text_text_base64


у base64:
Код:
dGV4dF90ZXh0X3RleHRfdGV4dF9iYXNlNjQ=


text >> dGV4dA==


Повернутися наверх
  
 
Показати повідомлення за:  Сортувати по:  
Розпочати нову тему Відповісти  [ 5 повідомлень ] 

Часовий пояс: UTC десь + 2 години



cron
Роwеrеd bу рhрВB® аnd Hostinger web hosting