Come posso decodificare un codice hash?

5

Sto costruendo un'applicazione in C # che funziona con un database Progress. Le password memorizzate in questo database vengono memorizzate utilizzando un algoritmo hash che Progress non ha reso pubblico. Tuttavia, vorrei autenticarmi usando questi hash. È possibile decodificare un tale algoritmo di hash e come fare per farlo?

Per essere chiari: non sto cercando un modo per ottenere le password unhashed dagli hash. Sto cercando l'algoritmo per ottenere un hash da una password.

    
posta Pieter van Ginkel 31.07.2013 - 13:17
fonte

3 risposte

8

Secondo questo argomento non sei il primo a cercare per quell'algoritmo. Come già accennato, Progress è non disposto a condividere molto su questo algoritmo.

Sebbene sia molto probabile che si crei un crack dell'algoritmo, è generalmente più semplice usare Progress stesso per calcolare gli hash. L'altra opzione è quella di passare dall'utilizzo della funzione Progress a varianti più standard (come SHA-1).

Ora, maggiori chiarimenti su cosa potrebbe significare "variazione". Supponi qualcosa del tipo:

string Encode(string pass) {
    string salt = "123456";
    return CRC16(pass + salt); // + for catenation
}

mentre è ancora lo stesso CRC16 produrrà risultati completamente diversi (rispetto a CRC16(pass) ). Quindi l'unico modo per ottenere un vero algoritmo è usare il disassemblatore per vedere il codice reale, dal momento che è probabilmente impossibile fare qualcosa osservando solo input e output.

Non esiste un "approccio strutturale" per indovinare l'algoritmo da input e result a meno che tu non abbia un pattern, e questo è esattamente che hash ideale non deve avere.

    
risposta data 31.07.2013 - 16:56
fonte
6

Potresti utilizzare il progresso per inserire una password con hash in una variabile temporanea e confrontarla con l'hash memorizzato.

Utilizzare i progressi per creare quell'hash.

    
risposta data 31.07.2013 - 13:39
fonte
5

Bene, puoi prendere un elenco di tutti gli algoritmi di hashing che puoi immaginare, eseguirli contro un elenco di password più popolari e controlla se uno qualsiasi dei risultati corrisponde a uno dei tuoi hash. Ovviamente questo funzionerà solo se il sito non ha applicato una politica di password complessa e l'algoritmo di hashing non è esotico (o parametrizzato).

    
risposta data 31.07.2013 - 13:39
fonte

Leggi altre domande sui tag