Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [MYSQL] SHA1 e varchar

  1. #1

    [MYSQL] SHA1 e varchar

    Ciao.
    Posso andare incontro a dei problemi
    usando SHA1 con un campo varchar(40)

    sul manuale ho trovato che sarebbe
    preferibile usare un campo BLOB
    (ma poi il valore lo devo salvare in binario )



    Aspetto chiarimenti


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  2. #2
    ma blob è per indirizzi web, ad esempio indirizzo della foto...
    invece SA1 è criptazione...

    vorresti criptare giusto?
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  3. #3
    rende un numero exadecimale .... 0-9 A-F

    in un campo blob ci metti un file, non una stringa ascii.

    e non e' criptato ma un hash

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Io ho già usato la crittazione SHA1 salvando la stringa in un campo VARCHAR(40) senza problemi.

    Il BLOB serve a tutt'altro... che io sappia.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    ehm mi ero sbagliato, giusto hashare, non criptare
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  6. #6
    Grazie a tutti


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Alternativamente, che è quello che ti consiglio, usa un campo BINARY 20 e al momento dell'inserimento fai una cosa molto semplice

    mysql_query("INSERT INTO tabella (hash, .....) VALUES(0x" . sha1($valore_per_hash) . ", ....)");

    In questo modo gli dici a mysql di inserire un valore binario nel campo hash che è un binary 20. Questo conviene per 2 motivi:
    - quando lo usi nelle where mysql deve eseguire la metà del lavoro nella fase del confronto, cosa utile su grosse tabelle
    - essendo un binary (o un varbinary se la tabella non è di tipo fisso) mysql fa una comparazione case sensitive ovvero non è costretto a convertire le due stringhe di dati in maiuscolo/minuscolo prima di fare la comparazione per far si che abbiano lo stesso casing

    Ovviamente se sono pochi dati è indifferente, ma se già prevedi di superare il migliaio di righe nella tabella o comunque prevedi continue query con l'hash allora ti conviene farlo!

    In fine se non hai bisogno di una tabella che contenga dati che debbano rimanere sul disco, come ad esempio una tabella delle sessioni, ti conviene usare una tabella di tipo MEMORY o HEAP, che è uguale, perché ti conserva la struttura su disco ma i dati stanno in memoria
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Originariamente inviato da daniele_dll
    Alternativamente, che è quello che ti consiglio, usa un campo BINARY 20 e al momento dell'inserimento fai una cosa molto semplice

    mysql_query("INSERT INTO tabella (hash, .....) VALUES(0x" . sha1($valore_per_hash) . ", ....)");

    In questo modo gli dici a mysql di inserire un valore binario nel campo hash che è un binary 20. Questo conviene per 2 motivi:
    - quando lo usi nelle where mysql deve eseguire la metà del lavoro nella fase del confronto, cosa utile su grosse tabelle
    - essendo un binary (o un varbinary se la tabella non è di tipo fisso) mysql fa una comparazione case sensitive ovvero non è costretto a convertire le due stringhe di dati in maiuscolo/minuscolo prima di fare la comparazione per far si che abbiano lo stesso casing

    Ovviamente se sono pochi dati è indifferente, ma se già prevedi di superare il migliaio di righe nella tabella o comunque prevedi continue query con l'hash allora ti conviene farlo!

    In fine se non hai bisogno di una tabella che contenga dati che debbano rimanere sul disco, come ad esempio una tabella delle sessioni, ti conviene usare una tabella di tipo MEMORY o HEAP, che è uguale, perché ti conserva la struttura su disco ma i dati stanno in memoria
    messo in bacheca


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.