Visualizzazione risultati 1 fino 30 di 30

Discussione: Limitare caratteri funzione md5

  1. #1
    Guest

    Post Limitare caratteri funzione md5

    Ciao a tutti, c'è un modo per limitare il risultato di una cifratura md5?
    Di solito quando usiamo una cifratura md5 ci mostra 32 caratteri...io vorrei limitarla a 5/6..
    E' possibile? Grazie 1000...ciao Davide! ^^

  2. #2
    Guest

    Predefinito

    No.


    Ciao!

  3. #3
    Guest

    Predefinito

    Allora vi spiego cosa devo fare... magari c'è una soluzione:
    Faccio una lista di file..ad ogni file devo assegnare un numero ...sono riuscito ad assegnargli ad ogni file un numero ...prima della lettura della cartella creo la variabili a 0 ..dopo dentro la lettura metto 2 più ($var++;) ...ora mi viene mostrato il numero del file (fileciao - 1 <br /> asdasd - 2 <br /> 4r5hrh - 3) e così via! Solo come faccio a fare un if per riconoscere che il numero della variabile corrisponde a quel file? xD
    Se faccio if($file == $id) ... non funziona perchè $id contiene l'id del file! xD Quindi come faccio?
    Ciauuu! ^^

  4. #4
    Guest

    Predefinito

    eh??????
    Guarda, fai degli esempi facili, altrimenti non si capisce nulla!
    Che tipi di controlli devi fare? Per cosa?


    Ciao!

  5. #5
    Guest

    Predefinito

    Ok...ti posto il codice faccio prima:
    Codice PHP:
    <?php
    echo "<br /><br />#################################<br /><br />";

    $path = "./files"; $id = 0;
    if(
    $cart = opendir($path)) {
    echo
    "<b>Lista di '$path'</b><hr />";
    while(
    $file = readdir($cart)) {
    if(
    $file == "." || $file == "..") continue;
    $files[] = $file;
    }
    } else { echo
    "Errore nell'aprire $path"; }
    closedir($cart);

    foreach(
    $files as $nome) {
    $id++; echo "$nome - $id<br />";
    }
    ?>
    e questo è il risultato: http://i39.tinypic.com/2romkog.png
    Ora io quando devo aprire il file come faccio a fare un if per verificare che $id corrisponde a $file? xD
    Grazie! :P

  6. #6
    Guest

    Predefinito

    A parte che non serve, basta indicare il nome del file che si vuol aprire.
    Ma se proprio non ne puoi fare a meno, devi creare un array associativo id=>nomefile, così da poter risalire automaticamente al file indicando un id:

    $array[$id]


    Ciao!

  7. #7
    Guest

    Predefinito

    Così? xD Non sono pratico con gli array! ;D
    Codice PHP:
    $id++;
    $all = array($id => $nome);
    echo
    "$nome - $id<br />";

  8. #8
    Guest

    Predefinito

    faccio prima a scrivertelo:
    Codice PHP:
    <?php
    echo "<br /><br />#################################<br /><br />";

    $path = "./files";
    echo
    "<b>Lista di '$path'</b><hr />";

    $files = glob($path.'/*');

    foreach(
    $files as $file) {
    if(
    $file != "." && $file != ".."){
    echo
    $file;
    }
    }
    ?>

    Ciaooo!

  9. #9
    Guest

    Predefinito

    Mi mostra:
    ./files/ar.png
    ./files/as.png
    ./files/at.png
    Non è il risultato che voglio! xD Io voglio che mi crei un ID che dopo con un if vado a vedere se corrisponde a quel file! :P
    Ciauu! e Grazie! ;D

  10. #10
    Guest

    Predefinito

    Ma se crei un id senza memorizzarlo da qualche parte, a cosa ti serve??

    Comunque sia, puoi fare:

    Codice PHP:
    foreach($files as $id=>$file) {
    if(
    $file != "." && $file != ".."){
    echo
    "$id: $file";
    }
    }

    Ciao!

  11. #11
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Ciao a tutti, c'è un modo per limitare il risultato di una cifratura md5?
    Di solito quando usiamo una cifratura md5 ci mostra 32 caratteri...io vorrei limitarla a 5/6..
    E' possibile? Grazie 1000...ciao Davide! ^^
    A dir la verità un modo ci sarebbe, basta considerare l'hash ottenuto come una stringa ed estrarre i primi 5/6 caratteri (o quelli che si vuole, per un massimo di 32) tramite la funzione substr().

    In alternativa, se scegli la versione "hash binario" (solo in PHP 5), per estrarre le prime cifre basta una semplice divisione (o, meglio, uno shift a destra).

    Stammi bene...
    Ultima modifica di dementialsite : 26-03-2009 alle ore 15.06.00
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  12. #12
    Guest

    Predefinito

    Ma non conserverebbe la teorica "univocità" tipica del md5...


    Ciao!

  13. #13
    Guest

    Predefinito

    C'ero arrivato su per giù a $id=>$file ...ok ora è come voglio io ma mi spunta pagina bianca quando faccio ?file=xxx
    Codice PHP:
    foreach($files as $id=>$file) {
    echo
    "<a href=\"?file=$id\">$file</a> - $id<br />";
    $ids = array($id);
    }

    if(@
    $_GET["file"] == $ids) {
    echo
    $_GET["file"];
    }
    Grazie mille! :P

    Edit: In effetti è come dice debug ...potrebbe capitarmi di avere un ID uguale con l'md5! XD
    Ultima modifica di sIM : 26-03-2009 alle ore 15.08.21

  14. #14
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Ma non conserverebbe la teorica "univocità" tipica del md5...


    Ciao!
    Se è per questo, nemmeno lo stesso MD5 è univoco... infatti è un algoritmo di hashing e non di codifica.

    La tecnica l'ho detta sopra incompleta, chiaro che poi bisogna implementare anche un metodo per evitare le collisioni...

    Stammi bene...
    Ultima modifica di dementialsite : 26-03-2009 alle ore 15.11.51
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  15. #15
    Guest

    Predefinito

    Ma non devi fare nessun controllo, tantomeno in quel modo (confronti una stringa con un array...)

    Basta fare echo $_GET["file"];


    Ciao!

  16. #16
    Guest

    Predefinito

    Si..ma io voglio vedere se quel numero esiste! XD
    Perchè l'id corrisponde al file! XD

  17. #17
    Guest

    Predefinito

    Allora:

    if( isset($array[$_GET['file']]) ){
    echo $array[$_GET['file']];
    }


    ciaooooo!

  18. #18
    Guest

    Predefinito

    Niente da fare! Sempre pagina bianca! xD
    Codice PHP:
    foreach($files as $id=>$file) {
    echo
    "<a href=\"?file=$id\">$file</a> - $id<br />";
    $ids = array($id);
    }

    if(
    $_GET['file'] == $ids[$_GET['file']]){
    echo
    $ids[$_GET['file']];
    }

  19. #19
    Guest

    Predefinito

    Dov'è che ti ho detto di scrivere $ids = array($id); ??
    E dov'è che ti ho detto di ri-mettere quel controllo?

    Cioè, è inutile aiutarti se poi fai di testa tua!


    Ciao!

  20. #20
    Guest

    Predefinito

    Ok...scusami ma pensavo che andava modificata qualche cosa! XD
    Codice PHP:
    foreach($files as $id=>$file) {
    echo
    "<a href=\"?file=$id\">$file</a> - $id<br />";
    }

    if(
    $id[$_GET['file']]){
    echo
    $id[$_GET['file']];
    }
    Sempre pagina bianca! XD

  21. #21
    Guest

    Predefinito

    Allora, segui me: prendi il codice del post #8, poi segui le mie modifiche successive (sostituendo ciò che indico di sostituire, secondo le tue esigenze) e non fare nessun'altra modifica.


    Ciao!

  22. #22
    Guest

    Predefinito

    Ho riletto tutto...fatto modifiche come hai detto ma sempre pagina bianca!
    Codice PHP:
    <?php
    $path
    = "./files";
    echo
    "<h1>Lista di '$path'</h1><hr />";

    $files = glob($path."/*");

    foreach(
    $files as $id=>$file) {
    if(
    $file == "." || $file == "..") continue;
    echo
    "<a href=\"?file=$id\">$file</a> - $id<br />";
    }

    if(
    $id[$_GET["file"]]){
    echo
    "<hr />".$id[$_GET["file"]];
    }
    ?>
    Secondo me il problema sta nell'$id dell'if... Grazie! :P

  23. #23
    Guest

    Predefinito

    Dov'è che ti ho scritto if($id[$_GET["file"]]){ ?????


    Ciao!

  24. #24
    Guest

    Predefinito

    ..ho tolto io isset...perchè secondo me non serve comunque qui: #17
    Grazie ! :P

  25. #25
    Guest

    Predefinito

    Se ti ho detto di copiare e incollare senza modificare altro, perchè non lo fai?
    Ripeto: se io ti dico di scrivere una certa cosa, e tu fai diversamente, a che gioco stiamo giocando?


    Ciao!

  26. #26
    Guest

    Predefinito

    Ok debug! xD ...cmq anche se mi si vede bianco! XD

  27. #27
    Guest

    Predefinito

    EH? Non ho capito...
    Riporta lo script definitivo.


    Ciao!

  28. #28
    Guest

    Predefinito

    Script definitivo si fa per dire! XD è una prova con delle cose per uno script che devo fare!
    Codice PHP:
    <?php
    $path
    = "./files";
    echo
    "<h1>Lista di '$path'</h1><hr />";

    $files = glob($path."/*");

    foreach(
    $files as $id=>$file) {
    if(
    $file == "." || $file == "..") continue;
    echo
    "<a href=\"?file=$id\">$file</a> - $id<br />";
    }

    if(isset(
    $id[$_GET["file"]])){
    echo
    "<hr />".$id[$_GET["file"]];
    }
    ?>
    Grazie e ciauu! ;D

  29. #29
    Guest

    Predefinito

    A questo punto ho capito che non sai neanche copiare e incollare.
    Io ho scritto questo:
    Codice PHP:
    if( isset($files[$_GET['file']]) ){
    echo
    $files[$_GET['file']];
    }
    e non
    Codice PHP:
    if(isset($id[$_GET["file"]])){
    echo
    "<hr />".$id[$_GET["file"]];
    }
    La vedi la differenza?


    Ciao!
    Ultima modifica di debug : 26-03-2009 alle ore 17.04.44

  30. #30
    Guest

    Predefinito

    Ok..problema 1:
    Codice PHP:
    <?php
    $path
    = "./files";
    echo
    "<h1>Lista di '$path'</h1><hr />";

    $files = glob($path."/*");

    foreach(
    $files as $id=>$file) {
    if(
    $file == "." || $file == "..") continue;
    $file = str_replace($path."/","",$file);
    $est = end(explode(".", $file));
    if(
    $est == "png" || $est == "jpg" || $est == "bmp") {
    echo
    "<a href=\"?file=$id\">$file</a> - $id - $est<br />";
    }
    }

    if(isset(
    $files[@$_GET['file']]) ){
    $file_ar = trim(htmlspecialchars($files[$_GET['file']]));
    $file_ar = str_replace($path."/","",$file_ar);
    $get_file = trim(htmlspecialchars($_GET["file"]));
    echo
    "<hr /><img src=\"$file_ar\" alt=\"immy\" width=\"auto\" height=\"auto\" /><br />";
    echo
    "<br />Nome del File di $_GET[file]: ".$file_ar;
    }
    ?>
    L'img non si vede..perchè? xD

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •