Bases numéricas - GregorioFornetti/CriPython GitHub Wiki
Vídeo tutorial
Caso goste de assistir vídeos tutorias, clique aqui para assistir um vídeo sobre as bases numéricas.
Janela das Bases numéricas

Na imagem acima, existem algumas áreas demarcadas com um retângulo vermelho e um número. Explicando cada área enumerada, temos:
1 - Na região do retângulo número 1, você pode selecionar o tipo de base numérica que você que aplicar para encriptar ou traduzir sua mensagem.
2 - Digite a sua mensagem na região do 2° retângulo. Caso esteja no modo encriptação, digite a mensagem que você deseja encriptar, e caso esteja no modo tradução, digite uma mensagem encriptada por uma das bases numéricas e clique em "traduzir".
3 - Ao clicar no botão "encriptar", a mensagem encriptada aparecerá nessa região. Caso esteja no modo de tradução, ao clicar no botão "traduzir", a mensagem traduzida aparecerá nessa mesma área. OBS: Na tradução, caso tenha algum erro na mensagem, como um caractere inválido para a base numérica, será mostrado uma mensagem de erro.
Funcionamento
Para explicar melhor o funcionamento dessa opção de cifra, a explicação será dividida em 2 tópicos: "Encriptação" e "Tradução". Esses tópicos serão explicados logo abaixo:
Encriptação
Para encriptar uma mensagem com essa opção de cifra, o programa coletará o valor unicode de cada caractere da mensagem (na base decimal) e converterá esse número para a base numérica escolhida (exceto para o decimal, que já vem convertido).
Exemplos:
Binário: A = 65(na tabela unicode) = 1000001 | AB = 65 66 = 1000001 1000010
Octal: A = 65 = 101 | AB = 65 66 = 101 102
Decimal: A = 65 | AB = 65 66
Hexadecimal: A = 65 = 41 | AB = 65 66 = 41 42
Tradução
Para traduzir uma mensagem encriptada por essa cifra, é necessário converter cada valor para a base decimal(unicode), e depois converter para o caractere referente ao valor unicode.
Exemplos:
Binário: 1000001 = 65 = A | 1000001 1000010 = 65 66 = AB
Octal: 101 = 65 = A | 101 102 = 65 66 = AB
Decimal: 65 = A | 65 66 = AB
Hexadecimal: 41 = 65 = A | 41 42 = 65 66 = AB
OBS: Mensagens de erros: caso você digite um digito inválido para a base numérica (EX: digitar o número: 1101(2)1 para binário, (8)212 para octal e A45(G) para hexadecimal aparecerá uma mensagem de erro. Caso você digite um valor muito elevado, isso também pode levar a ocorrência de um erro.
Recomendações
Caso não tenha muito conhecimento sobre as bases numéricas e deseja conhecer mais, existe um mini curso do canal Curso Em Vídeo que é muito bom para aprender esse conteúdo. Caso não saiba oque é o unicode, clique aqui. Caso queira ver como foi implementado o código em Python, clique aqui