Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Random Key

  1. #1

    Random Key

    Ciao Ragazzi,
    Qual é il miglior modo di creare una random key da 32 caratteri?
    In pratica vorrei creare un link per un acesso temporaneo ad un helpdesk, così il cliente accede al ticket senza fare il login.


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    md5(time())

  3. #3
    Originariamente inviato da Alhazred
    md5(time())
    Grazie Alhazred
    Io avevo pensato a questo:

    substr(md5(rand()), 0, 32);

    però uso il tuo suggerimento.

    Usando la funzione TIME non ci saranno neanche valori duplicati...


  4. #4
    Originariamente inviato da cris.calleo
    Grazie Alhazred
    Io avevo pensato a questo:

    substr(md5(rand()), 0, 32);

    Usando la funzione TIME se 2 record sono inseriti nello stesso momento ci potrà essere una duplicità, invece con microtime questo non avviene, (se ho capito bene da qualche ricerca fatta

    md5(microtime());

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Si hai capito bene, microsecond() lavora sui microsecondi, time() sui secondi, quindi è molto meno probabile la contemporaneità con microsecond().

    Applicare substr() come hai scritto nell'altro post non serve, md5() tira fuori sempre stringhe da 32 caratteri.

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    meno probabile ma non impossibile....valuta se fare un controllo duplicati o aggiungere una key2?
    If you think your users are idiots, only idiots will use it. DropBox

  7. #7
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    dovresti proteggerti dai duplicati a prescindere dall'argomento che passi ad md5sum

    le collisioni, seppur poco probabili, sono sempre dietro l'angolo, e 32 bit sono relativamente pochi.
    una volta generata la nuova chiave valuterei il tempo necessario per controllare se non sia già stata generata...
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  8. #8
    Avete ragione, penso che una key2 risolve il problema in modo definitivo.

    Per realizzare l'acesso utilizzo una query del genere.

    Quindi dovrei aggiungere un AND key2='$key2'.


    $result = mysql_query("SELECT * FROM tickets
    ... ... ... WHERE key='$key'",$con);

    Per evitare un altra stringa di 32 caratteri, che ne dite se utilizzo uniqid(); per la Key2???

    Grazie a voi per il prezioso consiglio!!

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.