Имя: Пароль:
IT
 
Кодировка в BASE64
0 good_luck7777
 
17.01.20
15:04
Добрый день!

Есть такая инструкция:
https://xn--80ajghhoc2aj1c8b.xn--p1ai/upload/iblock/a0f/a0f7fa37208f3118db26c00fc9bb2b5b.pdf

Последний абзац где ПРИМЕР.

Цитата:
"3. Складываем 00 05 + 00 00 02 C1 1E 5E + 41 44 67 6f 70 53 71 и кодируем в BASE64:
AAUAAALBHl5BRGdvcFNx."

НО

Если перевести в BASE64 стоку 00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71 то получается это: MDAgMDUgMDAgMDAgMDIgQzEgMUUgNUUgNDEgNDQgNjcgNmYgNzAgNTMgNzE=
Пробовал сложить три 16 разрядных числа буквально и результат перевести в BASE64, все равно получается далеко не то что там написано.

Вывод - я неправильно понимаю смысл того, что написано.

Подскажите что тут переводить в BASE64
1 Garykom
 
гуру
17.01.20
15:12
(0) Ты откуда вылез с такими навыками и куда лезешь?

Почитай что такое байты, и чем они отличаются от строк

Симв(00)+Симв(05)+Симв(00)+...

Не забудь что тут указана 16-ричная кодировка, Симв(КодСимвола) хочет 10-тичную
2 Garykom
 
гуру
17.01.20
15:21
"^ADgopSq" = 00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71
3 DeMi4
 
17.01.20
16:50
(2) Результат в Base64 - AAUAAALBHl5BRGdvcFNx который дает автор почему то не получается?
4 НЕА123
 
17.01.20
17:02
Base64Значение("AAUAAALBHl5BRGdvcFNx." )    00 05 00 00 02 C1 1E 5E 41 44 67 6F 70 53 71    ДвоичныеДанные
5 good_luck7777
 
20.01.20
09:51
Если не затруднит, можете объяснить как получилось AAUAAALBHl5BRGdvcFNx
6 НЕА123
 
20.01.20
11:52
Base64Строка(ПолучитьДвоичныеДанныеИзHexСтроки(" 00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71") )    "AAUAAALBHl5BRGdvcFNx"    Строка
7 Garykom
 
гуру
20.01.20
12:27
(3) Все получается, в мануале просят двоичные данные в base64 кодировать а не хз что в виде текстовой строки с символами 16 ричными
8 Garykom
 
гуру
20.01.20
12:32
ПолучитьДвоичныеДанныеИзHexСтроки("00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71") описана в (1)
В цикле берем (из строки) по два символа С1 например, конвертим из 16 в 10, получаем 12*16+1 = 193, и пишем в двоичные данные Символ(193)
И т.д.
9 good_luck7777
 
20.01.20
17:25
мне это нужно сделать на Visual Basic.
Непонимаю что значит "Складываем 00 05 + 00 00 02 C1 1E 5E + 41 44 67 6f 70 53 71 и кодируем в BASE64"


Складываем 00 05 + 00 00 02 C1 1E 5E + 41 44 67 6f 70 53 71
10 pechkin
 
20.01.20
17:37
(9)ну строки обычно складывают просто приписывая справа
11 Garykom
 
гуру
20.01.20
17:43
(9) VB6 или VB.Net ?
12 good_luck7777
 
20.01.20
17:43
Получается 00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71
"кодируем в BASE64"

беру по 2 символа
1) 00 получается 0
2) 05 в десятичной "5" в двоичной "101"

у меня получилась ерунда)
Garykom, я не правильно понял ?
13 Лефмихалыч
 
20.01.20
17:48
(0) Объяснить тут вряд ли что-то получится в виду непроглядной бездны в знаниях.
По этому на вот тебе погремушку. Если масло есть в голове, то разберешься что к чему и появятся предметные вопросы
https://cryptii.com/pipes/base64-to-hex

!(https://i.imgur.com/T8IHqI7.png)
14 Лефмихалыч
 
20.01.20
17:49
(12) "00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71" - это УЖЕ байты в шестнадцатиричном формате
15 Garykom
 
гуру
20.01.20
17:50
(12) Ты в каком классе в школе учишься? :)

1 байт это число от 0 до 255 или один символ ASCII 8-битной кодировки

Для шестнадцатиричной системы счисления там 0,1,2,...9,A,B,C,D,E,F - 16 разных цифр
А терь вспомни с уроков информатики как перевести FF из 16 в 10? F=15
F*16+F = 15*16+16 = 256 - это и есть один байт!

Два символа 16 ричной = 1 байту (из 8 бит) = десятичное число от 0 до 255
16 Garykom
 
гуру
20.01.20
17:55
Они у него в виде строки записаны :)
А в мануале речь про "Байты"

(12)
"Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит текстово-цифровые латинские символы A-Z, a-z и 0-9 (62 знака) и 2 дополнительных символа, зависящих от системы реализации. Каждые 3 исходных байта кодируются 4 символами (увеличение на ¹⁄₃)."

Надо последовательность/массив из байт (двоичные данные в терминах 1С) закодировать по https://ru.wikipedia.org/wiki/Base64
Реально не понимаю что тут сложного, хоть на 1С, хоть на VB, хоть на на чем угодно блин.
17 Garykom
 
гуру
20.01.20
18:08
(16)+ Короче для совсем того, возьми уже табличку "Схема соответствия «символ — значение» в Base64" из https://ru.wikipedia.org/wiki/Base64

Затем берешь свой
"00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71"

и переводишь в двоичное
"00000000 00000101 00000000 00000000 00000010 11000001 00011110 01011110 01000001 01000100 01100111 01101111 01110000 01010011 01110001"

Затем по табличке каждые 6 бит (вместо 8 как было по пробелам) в один символ
000000 000000 010100 000000 000000 ... = A A U A A ...

Так понятно?
18 Сияющий в темноте
 
20.01.20
19:45
Блин,прям баклановедение какое то.
это не строкм,это запись ячеек в памяти.

короче,каждый байт,это 8 бмт,а каждый символ в base64 это шесть бит.
читаешь байт пишешь 8 бит в строку в хвост
потом,пока длина строки больше 5 читаешь шесть символов с начала и смещаешь на них строку.
шесть символов переводишь в букву.
и так,пока поток байтов не кончится.
если в итоговой строке число символов не делится на 4,то добавляем символы равно в конец,пока не станет делиться.
19 trdm
 
20.01.20
20:09
(17) > Так понятно?
нет.
20 good_luck7777
 
21.01.20
16:41
Garykom,
Лефмихалыч

понятно спасибо!
Разжевали.