base64 encode - Home Made tramite LINQ

Sono passati due mesi dal mio ultimo post sul blog e mi scuso, ma non sono stati mesi facili. Oggi si riprende a fare sul serio con un articolo a tema base64. Tutti l’abbiamo sicuramente usato, ma in quanti si sono posti la domanda: come si crea sotto?
Nei giorni scorsi ho deciso di “sporcarmi un attimo le mani” e divertirmi cercando di ricostruirne il procedimento utilizzando LINQ. Ci sono riuscito? Credo di si e di seguito vi voglio riportare il codice da me scritto.
Prima di passare al prossimo step ci tengo a dire una cosa. Ho eseguito dei test generando DUECENTOMILA stringhe casuale di lunghezze casuale e confrontato il risultato tra il mio procedimento ed il “canonico”. Ho avuto zero elementi marcati come errore. Direi non male, vero? (vi consiglio di arrivare in fondo per capire come)
base64 - Teoria
Prima di cominciare, vi ricordate quali sono gli otto passaggi per creare il valore base64 dato il testo in ingresso?
- Separare tutti i caratteri della stringa fornita
- Convertire ogni carattere in binario
- Concatenare tutti i binari ottenuti dal punto precedente
- Rompere la super stringa binaria in sotto stringhe da sei caratteri
- Aggiungere “00” davanti ad ogni stringa ottenuta
- Convertire ogni singola stringa in numero decimale
- Prendere il carattere corrispondente ad ogni singolo numero
- Unirli per ottenere il base64
EXTRA: aggiungere il carattere = sino a quando la stringa ottenuta non avra’ una lunghezza multiplo di quattro.
base64 - codice
|
|
Arrivati a questo punto non dobbiamo fare altro che utilizzare la classe Base64Converter scritta per l’articolo:
|
|
Come avrete visto l’operazione da svolgere è veramente semplice. Se non siete convinti del codice appena scritto, vi lascio anche il metodo classico in modo da non fare mancare nulla a nessuno:
|
|
Per quanto riguarda l’asterisco messo ad inizio articolo, vi invito a guardare Base64Converter.cs sul mio GitHub dove potrete trovare anche un progetto di UnitTest utilizzato per il test massimo da me citato.
Ora non vi resta che attendere i prossimi articoli a tema perche’ ci saranno novita’ molto interessanti!
Happy Coding!