Перевод base32 в base10

Base32

Base32 Decoder

Base32 Encoder

Tool for decoding / encoding in Base32 according to RFC 4648. Base 32 is a variant of Base64 which uses letters and numbers from 2 to 7 (and =) as basic symbols.

Answers to Questions

How to encrypt using Base32 cipher?

The Base32 code is described in RFC 4648 standard. It allows to encode with 32 characters:

ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 and the = symbol optionally used as the final character (as in Base64).

The message to be encoded is first treated as a binary string (according to a predefined encoding such as ASCII or Unicode).

Example: Base is encoded in ASCII (8-bit) 01000010,01100001,01110011,01100101

The string is then split every 5 bits, and optionally completed with 0s.

Example: The split gives the 32 bits 01000,01001,10000,10111,00110,11001,01 (three 0 needed at the end)

Each 5-tuple is then encoded in base 32 by the letter or the corresponding number according to the conversion table:

Binary Decimal Base32
00000 0 A
00001 1 B
00010 2 C
00011 3 D
00100 4 E
00101 5 F
00110 6 G
00111 7 H
01000 8 I
01001 9 J
01010 10 K
01011 11 L
01100 12 M
01101 13 N
01110 14 O
01111 15 P
10000 16 Q
10001 17 R
10010 18 S
10011 19 T
10100 20 U
10101 21 V
10110 22 W
10111 23 X
11000 24 Y
11001 25 Z
11010 26 2
11011 27 3
11100 28 4
11101 29 5
11110 30 6
11111 31 7

Example: 01000 for I , 01001 for J , and so on. Until IJQXGZI

The standard indicates that the Base32 message must have a number of characters multiple of 8. The message obtained must therefore be completed with the character = (padding char).

Example: Finally, the message Base is base32-encoded IJQXGZI=

How to decrypt Base32 cipher?

The Base32 decoding is similar to a mathematical base change.

Example: Decode the message INXWIZI= coded in Base 32

Delete the final = of the encoded message.

Example: INXWIZI= becomes INXWIZI

Replace each character with its 5-bit value (cf conversion table) to create a binary string.

Example: I for 01000 , N for 01101 , etc. Until 01000,01101,10111,10110,01000,11001,01000

Read the binary string according to the encoding used (ASCII, Unicode, etc.)

Example: The message is divided into bytes (8-bits) as follows: 01000011,01101111,01100100,01100101 (the last string composed of 0 is ignored), which corresponds to ASCII (or Unicode) string Code

How to recognize a Base32 ciphertext?

A B32-encoded message

— is composed only of the characters ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 =’ (no 0,1,8,9)

— theoretically has a number of character multiple of 8.

— ends with 0,1,3,4 or 6 characters = (equal).

— has a length greater than 40 to 60% of the original message

Why aren’t digit 0 and 1 used in Base32?

The digit 0 is avoided not to be confused with the letter O , and the number 1 is also avoided for its resemblance to the letter I .

What are the variants of the Base32 encoding?

Base32 is similar to the Base64 which is much more commmonly used.

The zbase32 code is a Base32 variant wanting to be more human-readable and writtable.

The mathematical basis 32 (or base32hex) is the most natural version for writing numbers in base 32 and uses the symbols 0123456789abcdefghijklmnopqrstuv

Source code

dCode retains ownership of the online ‘Base32’ tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any function (convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (PHP, Java, C#, Python, Javascript, Matlab, etc.) no data, script or API access will be for free, same for Base32 download for offline use on PC, tablet, iPhone or Android !

Need Help ?

Please, check our community Discord for help requests!

Источник

Base N Convert

Base Conversion Calculator (advanced)

Converting Base 10 to Base N

Tool to write numbers in base N (change of basis / convert). In numeral systems, a base (radix) is the value of successive powers when writing a number.

Answers to Questions

What are default symbols?

A number in base 10 is written with the digits’ 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9` are used. For other bases, it is common to use letters, more precisely the following characters: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ (Beware to lowercase and uppercase from base 37) in order to write numbers up to base 62.

How to convert from a base to another?

A number $ N $ in base $ b $ can be written with an addition of powers in this base $ b $.

Example: The number $ N = 123_ <(10)>$ (base 10) verifies the equality $$ N = 789 = 7 \times 100 + 8 \times 10 + 9 \times 1 = 7 \times 10^2 + 8 \times 10^1 + 9 \times 10^0 $$

$ N= $ $ c2 $ $ c1 $ $ c0 $
$ 789 $ $ 7 $ $ 8 $ $ 9 $

Take a number $ N $ made of $ n $ digits $ < c_, c_, . c_2, c_1, c_0 > $ in base $ b $, it can be written it as a polynomial:

$$ N_ <(b)>= \< c_, . c_1, c_0 \>_ <(b)>= c_ \times b^ + . + c_1 \times b^1 + c_0 \times b^0 $$

To compute a base change, base $ 10 $ is the reference, or an intermediate step.

Example: To change from base $ 3 $ to base $ 7 $, calculate base $ 3 $ to base $ 10 $, then from base $ 10 $ to base $ 7 $.

How to convert from base 10 to base n?

Use the following algorithm to convert from base $ 10 $ to base $ n $:

$$ q_0=n; i=0; \mbox < while >q_i > 0 \mbox < do >(r_i = q_i \mbox < mod >b; q_= q_i \mbox < div >b ; i = i+1 ) $$

The converted number is composed of digits $ r_ $ (with $ r_0 $ the digit of the units).

Example: $ N = 123_ <(10)>$ (base 10) is converted to base $ 7 $:

$$ q_0 = 123 \\ r_0 = 123 \mbox < mod >7 = 4 \;\;\; q_1 = 123 \mbox < div >7 = 17 \\ r_1 = 17 \mbox < mod >7 = 3 \;\;\; q_1 = 17 \mbox < div >7 = 2 \\ r_2 = 2 \mbox < mod >7 = 2 \;\;\; q_2 = 2 \mbox < div >7 = 0 \\ 123_ <(10)>= 234_ <(7)>$$

How to convert from base n to base 10?

To convert a number $ N_1 $ written in base $ b $ in a number $ N_2 $ written in base $ 10 $, use the fact that $ N_1 $ is made of $ n $ digits $ < c_, c_, . c_1, c_0 > $ and apply the following algorithm:

$$ N_2 = c_ ; \mbox < for >( i=n-2 \mbox < to >1 ) \mbox < do >N_2=N_2 \times b+c_i $$

The number $ N_2 $ is written in base $ 10 $.

The algorithm is equivalent to the calculation $$ (( c_ \times b + c_ ) \times b + c_ ) . ) \times b + c_0 $$

Example: Take the number $ 123_ <(7)>$ (in base $ 7 $), and apply the conversion algorithm:

$$ 123 = \ <1,2,3\>\\ N = 1 \\ N = 1*7+2 = 9 \\ N = 9*7+3 = 66 \\ N = 123_ <(7)>= 66_ <(10)>$$

So $ 123_ <(7)>$ is equal to $ 66_ <(10)>$ in base $ 10 $.

What are usual bases?

— base 2 (binary system — base2) in informatics

— base 3 (trinary system — base3)

— base 8 (octal system — base8)

— base 9 (nonary system — base9)

— base 10 (decimal system — base10)

— base 12 (duodecimal system — base12), for month or hours

— base 16 (hexadecimal system — base16) in informatics for bytes

— base 20 (vigesimal system — base20) by Mayas and Aztecs

— base 60 (sexagesimal system — base60) for minutes, seconds by Sumerians and Babylonians.

— base 62 (full alphanumeric system — base62)

All the basics can be used for computer coding or any other math problem.

Example: Encoding and decoding base64 is common on the Internet.

Source code

dCode retains ownership of the online ‘Base N Convert’ tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any function (convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (PHP, Java, C#, Python, Javascript, Matlab, etc.) no data, script or API access will be for free, same for Base N Convert download for offline use on PC, tablet, iPhone or Android !

Need Help ?

Please, check our community Discord for help requests!

Источник

Мануал по методу кодирования base 16/32/64.

История появления кодировки.

Кодировка base берет свое начало еще с тех времен, когда не было определено сколько бит должно содержаться в одном байте. Сейчас всем известно, что в одном байте содержится 8 бит и с помощью него можно закодировать 256 различных значений, но так было не всегда.

Раньше были популярны кодировки, содержащие 6, 7 или 8 бит в байте. Таким образом, 6 бит позвояло закодировать в одном байте 64 различных значения, а 7-ми битная кодировка 128 значений. Казалось бы, что этого достаточно для того, чтобы закодировать буквенно-цифровой алфавит. Но вскоре была принята кодировка, содержащая 8 бит в одном байте.

Такая кодировка привнесла много проблем. В первую очередь, эти проблемы были связаны с оборудованием, которое уже работало на других кодировках, где байт содержал 6 или 7 бит. Но помимо этого была проблема обрезания 8-го бита в системах электронной почты, т.к. весь сфот был заточен под 7-ми или 6-ти битную кодировку. Как пример, 7-ми битная кодировка могла спокойно обнулить каждый 8-ой бит, что приводило к потери данных.

Тут на помощь пришел base 64. Идея base64 проста — обратимое кодирование, с возможностью восстановления, которое переводит все символы восьмибитной кодовой таблицы в символы, гарантированно сохраняющиеся при передаче данных в любых сетях и между любыми устройствами. В основе алгоритма лежит сведение трех восьмерок битов (24) к четырем шестеркам (тоже 24) и представление этих шестерок в виде символов ASCII. Таким образом получается обратимое шифрование, единственным недостатком которого будет увеличивающийся при кодировании размер — в соотношении 4:3.

Ниже приведена схема смещения битов в base 64

Пример:

Возьмем русский текст «АБВГД». В двоичной форме в кодировке Windows-1251 мы получим 5 байтов: 11000000 11000001 11000010

11000011 11000100 (00000000) — лишний нулевой байт нужен, чтобы общее число бит делилось на 6

Разделим эти биты на группы по 6: 110000 001100 000111 000010

110000 111100 010000 000000

Берем массив символов «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/» и получившиеся числа переводим в эти символы, используя их, как индексы массива, получаем «wMHCw8Q». Остается только добавить в конце один символ «=», как указание на один лишний нулевой байт, который мы добавляли на первом шаге и получить окончательный результат: «АБВГД»: base64 = «wMHCw8Q=» Возможно и обратное преобразование.

Base 16

Base 16 — это система счисления по основанию 16, т.е шестнадцатиричная система счисления. С ней вы могли и должны были столкнуться на уроках информатики. Алфавит этой кодировки состоит из цифр (0-9) и букв (A-F). Алгоритм преобразования остается примерно тем же, разве что теперь нам надо исходные двоичные числа разделить на тетрады (группы по 4 бита) и перевести их в соотвествии с таблицой кодировки в символы ASCII.

Base 32

Base 32 использует 32 символа: A-Z (или a-z), 2-7. Может содержать в конце кодированной последовательности несколько спецсимволов (по аналогии с base64). В данном алгоритме преобразования нам необходимо будет разделять двоичные значения на группы по 5 бит.

Основные отличия кодировок

Base64

Позволяет кодировать информацию, представленную набором байтов, используя всего 64 символа: A-Z, a-z, 0-9, /, +. В конце кодированной последовательности может содержаться несколько спецсимволов (обычно “=”).

Преимущества: Позволяет представить последовательность любых байтов в печатных символах. В сравнении с другими Base-кодировками дает результат, который составляет только 133.(3)% от длины исходных данных.

Недостатки: Регистрозависимая кодировка.

Base32

Использует только 32 символа: A-Z (или a-z), 2-7. Может содержать в конце кодированной последовательности несколько спецсимволов (по аналогии с base64).

Преимущества: Последовательность любых байтов переводит в печатные символы. Регистронезависимая кодировка. Не используются цифры, слишком похожие на буквы (например, 0 похож на О, 1 на l).

Недостатки: Кодированные данные составляют 160% от исходных.

Как закодировать/декодировать base?

В основном в заданиях по ctf вам будет попадаться base 64. Его легко определить, т.к. на конце будет знак «=». Например, мы кодировали строку «АБВГД» в base 64 и у нас получился результат «wMHCw8Q=». Как мы видим, здесь присутсвует знак «=», который говорит нам о том, что строка зашифрована в base 64.

Итак, как же ее декодировать? Все очень просто. Base 16, 32, 64 легко декодировать онлайн-сервисами. Т.е. вбиваете в гугле подобный запрос:»base 64 online decoder» и вам будет выдан большой перечнь ссылок на онлайн декодеры. Берем первый попавшийся, разве что для уточнения стоит воспользоваться сразу несколькимим онлайн декодерами.

Процесс кодирования почти ничем не отличается, разве, что вам нужно вбить в запросе не «decode», а «encrypt». Бывает, что нужно обращать внимание на то, какой кодировкой вы пользуетесь. В русскоязычной версии ОС «Windows» обычно используется кодировка windows-1251.

Практика

Задание 1:

Взгляните на эту строку:
ZmxhZ2lzVzBXdGhpc2lzQkFTRTY0Cg==

На конце мы видим «=», причем двойное, что сразу наводит на мысль, что это base 64. Воспользуемся онлайн-декодером.

В ответе мы видим расшифрованную строку — это и есть наш флаг:
flagisW0WthisisBASE64

Задание 2:

Посмотрим на эту строку:
MZWGCZ33MJQXGZJTGJ6Q

На конце мы не видим знака «=». На base 16 тоже не похоже, тогда попробуем base 32.
Снова воспользуемся онлайн-декодером.

И вот наш флаг: flag

Задание 3:

Была получена такая строка: 666C61677B48656C6C6F2C20576F726C64217D

Здесь нет ни знака «=», алфавит ограниченный. Похоже на base 16 или просто hex.
Как и прежде, пользуемся онлайн-декодером.

Отлично, у нас есть флаг, но это же задание можно было решить и через hex декодер.

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector