|
Кодировка в 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,
Лефмихалыч понятно спасибо! Разжевали. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |