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

    [C#] MD5 differenza con PostGreSQL

    Ciao a tutti.
    Voelvo porvi un quesito.
    ho implementato, questa funzionacina per criptare in md5 delle stringhe, la funzione è la seguente
    codice:
    /// <summary>
            /// Cripta la stringa passata con l'algoritmo MD5
            /// </summary>
            /// <param name="pstr">Stringa da criptare</param>
            /// <returns>Ritorna la stringa criptata</returns>
            public static string md5(String pstr)
            {
                byte[] lorbytes, lenbytes;
                MD5 lencrypt;
                try
                {
                    lencrypt = new MD5CryptoServiceProvider();
                    lorbytes = ASCIIEncoding.Default.GetBytes(pstr);
                    lenbytes = lencrypt.ComputeHash(lorbytes);
                    return BitConverter.ToString(lenbytes);
                }
                catch (Exception exc)
                {
                    lib_debug.debug_log("[ERROR] [lib.md5] " + exc.Message);
                    return "";
                }
            }
    il risultato criptando la parola "fontana" è questo "B1-23-3B-46-54-BA-E7-01-B1-99-3A-56-C4-49-46-36"

    criptando direttamente da PostgreSQL il risultato è questo "b1233b4654bae701b1993a56c4494636"

    come noterete la criptazione è uguale, ma il risultato è diverso.
    Come mai? Esiste un modo per farli uguali, oltre a risistemare la stringa già generata dalla funzioncina?


    grazie a tutti coloro che risponderanno.

    cyb
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ciao,
    nella funzione public static string md5(String pstr)
    prima di ritornare
    return BitConverter.ToString(lenbytes);
    potresti semplicemente trasformare la stringa in lowercase e poi eliminare tutti quelli "-"...
    non mi sembra cosi' difficile o forse non ho capito cosa vuoi fare :master:
    I got the remedy

  3. #3
    no no va bene. la domanda era se si poteva fre altrimenti oltre quello.

    va bien.

    grazie
    ciao!
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ah..non avevo letto bene.
    una soluzione potrebbe essere questa:


    /// <summary>
    /// Cripta la stringa passata con l'algoritmo MD5
    /// </summary>
    /// <param name="pstr">Stringa da criptare</param>
    /// <returns>Ritorna la stringa criptata</returns>
    public static string md5(String pstr)
    {
    byte[] lorbytes, lenbytes;
    MD5 lencrypt;
    try
    {
    lencrypt = new MD5CryptoServiceProvider();
    lorbytes = ASCIIEncoding.Default.GetBytes(pstr);
    lenbytes = lencrypt.ComputeHash(lorbytes);
    //return BitConverter.ToString(lenbytes);


    StringBuilder strCriptata = new StringBuilder();
    for (int i = 0; i < lenbytes.Length; i++)
    strCriptata.Append(lenbytes[i].ToString("x2"));
    return strCriptata.ToString();

    }
    catch (Exception exc)
    {
    //lib_debug.debug_log("[ERROR] [lib.md5] " + exc.Message);
    return "";
    }
    }
    I got the remedy

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.