Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: funzione hash

  1. #1

    funzione hash

    Per autenticare un pagamento oline ho bisogno di creare un numero in esadecimale con la funzione hash e lo faccio in questo modo:

    $mac=hash('md5','NUMORD=1235&IDNEGOZIO=01050000000 0001&IMPORTO=5000&VALUTA=978&TCONTAB=D&TAUTOR=I&nf hgvdbtu46th67sf39utonuegv4567gserbvdf78hj34hgfr5h' );

    ora in questo modo funziona, il numero generato dal cliente è identico a quello generato dal server di pagamento. Se invece inserisco delle variabili al posto di valori fissi non funziona ed i numeri generati sono diversi ES:

    $mac=hash('md5','NUMORD=$ordine&IDNEGOZIO=01050000 0000001&IMPORTO=$importo&VALUTA=978&TCONTAB=D&TAUT OR=I&nfhgvdbtu46th67sf39utonuegv4567gserbvdf78hj34 hgfr5h');

    Mi viene il dubbio che non si possano inserire nella funzione hash delle variabili ma solo dei valori fissi. Ma allora come faccio a generare il numero al variare del numeroOrdine e dell'importo? Grazie

  2. #2
    Hai provato così?
    Codice PHP:
    $mac=hash("md5","NUMORD={$ordine}&IDNEGOZIO=010500000000001&IMPORTO={$importo}&VALUTA=978&TCONTAB=D&TAUTOR=I&nfhgvdbtu46th67sf39utonuegv4567gserbvdf78hj34hgfr5h"); 

  3. #3
    Purtroppo i due numeri risultano sempre diversi ed ho verificato che è il numero generato da me, dal client che è errato inquanto se gli scrivo, nell'hash,al posto delle variabili i valori che esse contengono i due numeri sono identici. E' la funzione hash che fallisce, non è scritta a dovere

  4. #4
    Come ti ho scritto io se le variabili sono valorizzate correttamente dovrebbe funzionare, altrimenti non ho capito qual'è il problema

  5. #5
    scusa capisco che non è facile spiegare ma ora ci provo. Dunque da una pagina diciamo ordine.php arrivano alla pagina termina_ordine.php le de variabili $_POST[numordine] e $_POST[importo] che so valgono poniamo 1250 e 5000. Ora in termin_ordine.php debbo generare il numero che inserisco in $mac e che verrà passato al gestore del pagamento con carta di credito.

    ora se genero il
    $mac=hash('md5','NUMORD=1250 &IDNEGOZIO=010500000000001&IMPORTO=5000&VALUTA=978 &TCONTAB=D&TAUTOR=I&nfhgvdbtu46th67sf39utonuegv456 7gserbvdf78hj34hgfr5h');
    il numero generato è corretto ma se lo genero così:
    $mac=hash('md5','NUMORD={$_POST[numordine]} &IDNEGOZIO=010500000000001&IMPORTO={$_POST[importo]}&VALUTA=978&TCONTAB=D&TAUTOR=I&nfhgvdbtu46th67sf3 9utonuegv4567gserbvdf78hj34hgfr5h');
    ottengo un numero diversoe controllando posso dirti che il numero corretto è quello ottenuto da
    $mac=hash('md5','NUMORD=1250 &IDNEGOZIO=010500000000001&IMPORTO=5000&VALUTA=978 &TCONTAB=D&TAUTOR=I&nfhgvdbtu46th67sf39utonuegv456 7gserbvdf78hj34hgfr5h');
    ma io debbo creare il $mac passandogli delle variabili che sono il numordine e importo.
    Spero di essermi spiegato, altrimenti chiedi pure, grazie.

    P.S. Se vuoi puoi provare per vedere che vengono creati numeri diversi a seconda che vengano inserite nell'hash le variabili oppure i valori che le variabili stesse assumono. Grazie per la pazienza

  6. #6
    Si ma non hai scritto come ti ho detto io però
    Codice PHP:
    $mac=hash("md5","NUMORD={$_POST['numordine']}&IDNEGOZIO=010500000000001&IMPORTO={$_POST['importo']}&VALUTA=978&TCONTAB=D&TAUTOR=I&nfhgvdbtu46th67sf39utonuegv4567gserbvdf78hj34hgfr5h"); 
    Il doppio apice non l'avevo messo a caso, copia/incolla e vedi se va bene così

  7. #7
    Grazie ancora per la pazienza. Non pensavo facessero differenza le virgolette, ora non sono davanti al mio computer ma domani provo e tifaccio sapere.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    221

    Re: funzione hash

    Originariamente inviato da maurizio54
    Per autenticare un pagamento oline ho bisogno di creare un numero in esadecimale con la funzione hash e lo faccio in questo modo:

    $mac=hash('md5','NUMORD=1235&IDNEGOZIO=01050000000 0001&IMPORTO=5000&VALUTA=978&TCONTAB=D&TAUTOR=I&nf hgvdbtu46th67sf39utonuegv4567gserbvdf78hj34hgfr5h' );

    ora in questo modo funziona, il numero generato dal cliente è identico a quello generato dal server di pagamento. Se invece inserisco delle variabili al posto di valori fissi non funziona ed i numeri generati sono diversi ES:

    $mac=hash('md5','NUMORD=$ordine&IDNEGOZIO=01050000 0000001&IMPORTO=$importo&VALUTA=978&TCONTAB=D&TAUT OR=I&nfhgvdbtu46th67sf39utonuegv4567gserbvdf78hj34 hgfr5h');

    Mi viene il dubbio che non si possano inserire nella funzione hash delle variabili ma solo dei valori fissi. Ma allora come faccio a generare il numero al variare del numeroOrdine e dell'importo? Grazie
    avevo lavoarto anch io tempo fa con una banca che chiedeva una cosa simile, ma loro ovviamente chiedevano solo un hash con valori fissi!
    per poterlo ricostruire sul server in base a dati passati nella sessione via post (n ordine esempio) e valori non passati (esempio codice cliente) "registrati" sul server...
    sluto
    ciAo

  9. #9
    Scusa d@niele ma non rieso a capire il tuo messaggio, forse è saltato qualche cosa al momento dell'invio. Se puoi rimandami le tue considerazioni

  10. #10
    Grazie mille cubalibre810, funziona alla perfezione. Mi puoi spiegare la differenza fra quelo che avevo scritto io:

    $mac = hasc ('md5','NUMORD=$_POST[numordine]&.......');

    e quello che invece mi hai suggerito tu?

    $mac = hasc ("md5","NUMORD={$_POST['numordine']}&.......");

    mi servirebbe soprattutto sapere il significato delle parentesi {}

    Grazie di nuovo

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.