Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    MD5 - è davvero corretto?

    Mi spiego.
    Vorrei poter ritornare la password dimenticata dall'utente, tramite e-mail, senza dover assegnare una nuova password. Che faccio?
    Non cripto la password con MD5 al momento della registrazione? Oppure esiste un metodo che non conosco e del quale avrete sicuramente già discusso?

    Grazie
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  2. #2
    non e' ufficialmente reversibile, l' md5, quindi assegni una nuova password ( e in caso, dopo dai la possibilita' di cambiarla )
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Io uso questa classe:
    codice:
    <?php
    Class Crypt128
    {
        private function get_rnd_iv ($iv_len)
        {
            $iv = '';
            while ($iv_len-- > 0)
            {
                $iv .= chr (mt_rand () & 0xff);
            }
            return $iv;
        }
        
        public function encrypt ($plain_text, $password, $iv_len = 16)
        {
            $plain_text .= "\x13";
            $n = strlen ($plain_text);
            if ($n % 16)
                $plain_text .= str_repeat ("\0", 16 - ($n % 16));
            $i = 0;
            $enc_text = get_rnd_iv ($iv_len);
            $iv = substr ($password ^ $enc_text, 0, 512);
            while ($i < $n)
            {
                $block = substr ($plain_text, $i, 16) ^ pack ('H*', md5 ($iv));
                $enc_text .= $block;
                $iv = substr ($block . $iv, 0, 512) ^ $password;
                $i += 16;
            }
            return base64_encode ($enc_text);
        }
        
        public function decrypt ($enc_text, $password, $iv_len = 16)
        {
            $enc_text = base64_decode ($enc_text);
            $n = strlen ($enc_text);
            $i = $iv_len;
            $plain_text = '';
            $iv = substr ($password ^ substr ($enc_text, 0, $iv_len), 0, 512);
            while ($i < $n)
            {
                $block = substr ($enc_text, $i, 16);
                $plain_text .= $block ^ pack ('H*', md5 ($iv));
                $iv = substr ($block . $iv, 0, 512) ^ $password;
                $i += 16;
            }
            return preg_replace ('/\\x13\\x00*$/', '', $plain_text);
        }
    }
    ?>
    Crypta e decrypta a 128 bit con password, di conseguenza riesci a decryptare solo se conosci la pass con cui è stato cryptato.

    Ho trovato il codice su inet e lo ho trasformato in classe
    Horazon.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.