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

    Digest::MD5 e valori da dargli

    Vorrei creare una stringa lunga 32 byte e che sia univoca...

    codice:
    use Digest::MD5;
        
    $md5 = Digest::MD5->new;
    $md5->add(time);
    $md5->add(process_id);
    $md5->add(numero_random);
    $digest = $md5->hexdigest;
        
    print "Digest is $digest\n";
    time c'è l'ho.

    qual'è variabile che determina il process_id del programma in esecuzione?

    come creo un numero di 10 cifre a random?

    Credete che ci debba buttare anche la REMOTE_PORT?

    grazie...

  2. #2
    ecco la risposta...

    codice:
    #!/usr/bin/perl
    
    use Digest::MD5;
    
    $tempo = time;
    $acaso = int(rand 100000) + 1;
    $process_id = $$;
    
    $md5 = Digest::MD5->new;
    $md5->add($tempo);
    $md5->add($acaso);
    $md5->add($process_id);
    $digest = $md5->hexdigest;
    
    print "Content-type: text/plain", "\n\n";
    print "Digest is $digest\n";
    quanto credete che sia univoca nel tempo questa soluzione?

  3. #3
    Ciao,

    qui si entra nel complicatissimo campo della "entropia" per evitare la pseudo casualità. Secondo alcuni autori l'unico modo per avvicinarsi ad una vera entropia è l'uso di hardware specifico, ma per gli usi comuni il tuo metodo va bene.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

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 © 2024 vBulletin Solutions, Inc. All rights reserved.