Linguaggio C
-

Crittografia a Chiave Pubblica in C: Implementare RSA dall’Algoritmo al Codice
.
Perché implementare RSA in C? La crittografia a chiave pubblica è uno dei pilastri della sicurezza informatica moderna. Ogni volta che effettui un pagamento online, accedi a un sito HTTPS o firmi digitalmente un documento, molto probabilmente stai utilizzando un algoritmo basato su chiavi asimmetriche basato sugli stessi principi che vedremo oggi. Comprendere come funziona a livello…
-

Come implementare la Crittografia a Chiave Pubblica (RSA) in C – Parte 1
.
Nel precedente capitolo abbiamo affrontato l’implementazione della crittografia a chiave privata, nota anche come crittografia simmetrica. Oggi faremo un passo avanti esplorando uno dei concetti più affascinanti e cruciali della sicurezza informatica: la crittografia a chiave pubblica (o asimmetrica). In questo articolo vedremo la teoria alla base di questo sistema e inizieremo a scrivere il codice in C…
-

Scopri come funziona la Crittografia Simmetrica (a Chiave Privata): spiegazione semplice e implementazione in C
.
Oggi ci addentriamo nel cuore della sicurezza informatica e della programmazione affrontando un tema tanto affascinante quanto cruciale: la crittografia simmetrica, conosciuta anche come crittografia a chiave privata. Nel nostro percorso di apprendimento del linguaggio C, ci capita spesso di esplorare concetti informatici generali per poi declinarli a livello pratico scrivendo del codice. Oggi scopriremo cos’è la…
-

Codice automodificante: quando la fantascienza diventa (quasi) realtà
.
Codice automodificante: tra miti e realtà Il termine “codice automodificante” evoca subito immagini da film di fantascienza: computer che si riscrivono da soli, virus che mutano per sfuggire agli antivirus, o intelligenze artificiali che evolvono in modo incontrollato. Ma al di là della narrativa, questa tecnica esiste davvero ed è stata usata in contesti molto specifici —…
-

Assemblatore SML in C: Guida all’Implementazione della Seconda Passata
.
Nel percorso di sviluppo del nostro simulatore di CPU Simpletron, uno dei componenti fondamentali è l’assemblatore. Dopo aver completato la prima passata per l’identificazione delle etichette, in questo secondo capitolo ci immergiamo nel cuore della traduzione: la trasformazione del codice mnemonico in linguaggio macchina eseguibile. Mentre la prima passata serve a popolare la Symbol Table con i nomi…
-

Costruire un assemblatore in C: la prima passata e la Symbol Table
.
Nello sviluppo del nostro progetto Simpletron, abbiamo raggiunto una tappa fondamentale. Dopo aver progettato e simulato la CPU, è arrivato il momento di colmare il divario tra il codice leggibile dall’uomo e le istruzioni macchina. Oggi iniziamo lo sviluppo di un assemblatore per il linguaggio SML, scritto interamente in C. Scrivere un assemblatore è uno…
-

Dalla Teoria alla Pratica: Costruiamo un Microprocessore Virtuale con il C
.
Come programmatori, ogni giorno diamo istruzioni a una macchina che le esegue fedelmente. Ma quanti di noi si sono fermati a pensare a cosa succede davvero in quella “scatola nera” chiamata CPU? Per me, che ho un piede nell’informatica e uno nell’elettronica, questa domanda è sempre stata di estremo interesse. Volevo andare oltre l’astrazione del…
-

Uscire da un labirinto con il linguaggio C: l’Algoritmo della Mano Destra
.
Spesso, quando si studia la programmazione, ci si imbatte in concetti che sembrano puramente teorici o accademici. Uno di questi è senza dubbio la ricorsione. “A cosa serve richiamare una funzione all’interno di se stessa?”, ci si chiede. Beh, nel video di oggi vi mostro un esempio pratico dove la ricorsione non è solo utile,…
-

File ad Accesso Casuale nel Linguaggio C
.
In questo video concludo la parte sui file in C parlando di accesso casuale, una tecnica che permette di leggere e modificare dati specifici senza dover scorrere l’intero file. Nel video vediamo due approcci fondamentali: i file formattati con fprintf() e fscanf() , e i file a blocchi con fwrite() e fread() . Quest’ultimo metodo è particolarmente…
