class Crypto

Classe Pubblica senza dipendenze.

I Metodi:

  1. Crypt()
  2. Decrypt()
  3. gen_pass()

Questa classe viene utilizzata per generare stringe crittografate o per proteggere le password da eventiali "occhi indiscreti".

Le impostazioni di crittografia sono all'interno del file ./Config/config.php alla voce Gesione sessioni e protezioni dati:

"ENCRYPTION_METHOD" => "AES-256-CBC",
"ENCRYPTION_KEY" => "!abcDeFgHiJklMnOpQrstuV*",
"ENCRYPTION_IV" => "l0tBq;r.)Yhs-(!(AU*)", 

ENCRYPTION_KEY e ENCRYPTION_IV sono le chiavi per crittografare le stringhe RGL.

Note: le costanti ENCRYPTION_KEY e ENCRYPTION_IV saranno generate in modo automatizzato e random durante la fase di installazione del framework. Nulla ci vieta di inserire caratteri o frasi a noi più gradite.

Analizzeremo in dettaglio il singolo metodo.


Crypt()  e Decrypt() all'interno della View:

function view_page(){
        $frase = Crypto::Crypt('Crittografia di una frase!');
        $frase_drecrypt = Crypto::Decrypt($frase);
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                #'message'=>parent::test(),
                'frase' => $frase,
                'frase_drecrypt'=> $frase_drecrypt, 
                'benvenuto'=>'Regolo mini-framework',
            )
        );
    }

In questo esempio abbiamo inserito sia il metodo per crittografare che quello per decrittografare.

All'interno del template scriviamo:

Frase Codificata: <?php echo $_['frase'] ?> <br>
Frase Decodificata: <?php echo $_['frase_drecrypt'] ?> <br>

Dovrebbe mostrarci qualcosa di molto simile al testo seguente:

Frase Codificata: Ulh1OGhFRC9tcFJCZmQ2L2xvZjYyZDZsdFNjdStUMjNTTUpwTXA4eFdISFQycW5ycWRhWTQ4UHlRRTdlVW8yY1d5NSs5K2J3R2RNR...
Frase Decodificata: Crittografia di una frase!

Note: è stato scelto il metodo di crittografia AES, che al momento sembra tra i più sicuri. Inoltre ho aggiunto un'ulteriore metodo di crittografia realizzato personalmente per rendere ancora più difficile un eventuale tentativo di lettura del testo.


gen_pass():

Questo metodo permette di generare una stringa codificata restituendo valori di hash tramite le funzioni md5 e sha1 ed è possibile utilizzarla per codificare una password.

Il metodo gen_pass() viene utilizzato da RGL anche durante la fase di creazione della tabella logins (se attivata) durante la fase di installazione.

Il suo utilizzo è molto semplice:

Crypto::gen_pass('mia password!');

Il metodo restituisce una stringa codificata.

Note: è possibile cambiare a piacimento lo schema ed il numero di funzioni sha1 e md5 in modo da non avere mai lo stesso schema di protezione delle password su progetti differenti.


Lista dei Blocchi