L'hash è generato da SHA-256 della password e salt, codificato come una stringa Base64 con un set di caratteri personalizzato. Ho scoperto questo sostituendo i caratteri non validi ( _
e .
) con A
e decodificandolo, e il risultato è uscito esattamente a 256 bit. Ovviamente, i dati dei risultati sono errati a causa della mancata conoscenza della codifica, ma la dimensione rimane corretta.
Questo è supportato da la loro documentazione , che dice quanto segue sulla tabella degli utenti:
- username -
NCHAR(32)
- Nome per l'utente.
- salt -
BIGINT
- 64-bit salt che il server usa per trasformare la password prima di applicare l'algoritmo di hash. Il server può utilizzare salt per modificare una password in modo che due utenti con la stessa password non abbiano la stessa password con hash nel database. Salt migliora la sicurezza perché impedisce l'induzione della password.
- hashed_password -
VARCHAR(128)
- Un hash sha-256 e una password codificata in base 64.
- hash_type -
CHAR(16)
- Tipo di algoritmo di hash utilizzato. Attualmente viene utilizzato l'algoritmo SHA-256.
- aggiornato -
DATETIME YEAR TO SECOND {TIMESTAMP}
- N / A
- flags -
INTEGER
- Flag utilizzati per memorizzare alcune informazioni sull'account (come il blocco dell'account).
- min_change -
INTERVAL DAY(7) TO SECOND
- N / A
- max_change -
INTERVAL DAY(7) TO SECOND
- N / A
- inattivo -
INTERVAL DAY(7) TO SECOND
- N / A
- ac_expire -
DATETIME YEAR TO SECOND
- N / A
Sfortunatamente non c'è un modo semplice per dire come l'hash è calcolato dalla password e salt, o quale set di caratteri base64 loro usano. Non sembra essere documentato. Probabilmente dovresti installare Informix e decodificarlo manualmente.