Base64 Decoding [closed]

-7
000000000007KG001m000040003JL0y00RH8001B002nO0000000000000000000mtW00CDu000000000000000000000000000006e0QW00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001W00000000000000000000000000000000000000000

Sto cercando di dare un senso a questo, ma non so molto sulla codifica, suppongo che gli 0 siano solo di riempimento.

La parte principale di questo sto cercando di capire è il "7KG"

Lo so:

22279 = 7Lm

21767 = 7LG

63 = +

62 = *

64 = 10

42 = g

60 = y

    
posta Veviya 26.10.2015 - 09:44
fonte

1 risposta

3

Base64 è in realtà molto semplice. Inoltre, non è un algoritmo di crittografia, quindi questa domanda probabilmente si adatta meglio a Stack Overflow.

L'idea alla base di Base64 è che vuoi essere in grado di prendere qualsiasi dato binario e convertirlo in qualcosa che può essere trattato come testo ASCII (cioè, lettere, numeri e alcuni caratteri speciali). Naturalmente i dati binari hanno 256 valori possibili per byte, ma per arrivare a una rappresentazione testuale, è necessario ridurli a non più di circa 80 o meno valori possibili. Dal momento che 64 è una potenza di due, è stato scelto.

64 valori equivale a sei bit. Di conseguenza, ogni tre byte (24 bit) nel binario originale si traduce in quattro byte in Base64 (anche 24 bit, come quattro gruppi di sei).

L'algoritmo è semplicemente:

  • prendi il file binario originale.
  • dividi in gruppi di tre byte
  • tratta i tre byte come gruppi di 24 bit.
  • divide questi 24 bit in quattro gruppi di sei bit.
  • cercare la lettera corrispondente per ogni gruppo di sei bit. Questo è il tuo risultato.

Puoi trovare la tabella di traduzione su tutto il Web, ad esempio qui: link

C'è un caso speciale: alla fine dei dati binari, potresti avere uno o due byte rimasti. Questo è il motivo per cui a volte vedi i segni = alla fine; indicano il riempimento.

Con questo in mente, il tuo testo originale in realtà non assomiglia a Base64. Potrebbe essere, ma non sembra plausibile. Le lunghe stringhe di 0 sono un omaggio. Invertire l'algoritmo sopra, ogni 0 indica il numero 52 (cercato nella tabella) o 110100 in binario. Quindi la sequenza 0000 corrisponderebbe al modello di bit 110100110100110100110100. Divido quello lungo i confini di otto bit per ottenere il binario originale, e ottieni questo:

11010011 01001101 00110100 o in esadecimale D34D34

Nei dati, vedere stringhe lunghe di valori pari a zero è molto più plausibile delle lunghe stringhe di D34D34. Ancora meno plausibile, i dati iniziano con undici anni - se questa fosse davvero una lunga serie di dati, ci si aspetterebbe multipli di quattro.

    
risposta data 26.10.2015 - 10:57
fonte

Leggi altre domande sui tag