2010-05-26 17 views
8

Ho un elenco di password in MySQL che vengono generati utilizzandoConverti base64'd hash SHA1 a Hex hash

$hash = '{SHA}' . base64_encode(sha1('some string here', true)); 

ho bisogno di convertire questi in quello che sarebbe l'equivalente di

$hash = sha1('some string here'); 

Poiché si tratta di una password utilizzata dal nostro sistema di posta elettronica e vogliamo convertirla in un altro sistema di posta (ma richiede che sia l'hash da 40 caratteri esadecimale :(

Come convertire da un formato all'altro (I'm pret Sono sicuro che l'ho già fatto prima, ma l'altro modo, anche se non riesco a trovare il codice!)

Come nota, ho detto che i dati sono in mySQL - questo è irrilevante - so come ottenere i dati, basta non convertirli.

l'hash è lo stesso - Sto solo cercando di convertire il modo in cui l'informazione è pieno (credo che questo ha solo bisogno di essere convertito da Base64 a Base16, ma questa è solo una supposizione!)

risposta

16
$binary = base64_decode(substr($hash, 5)); 
$hex = bin2hex($binary); 
+2

Overflow dello stack: il posto per le risposte quando hai una scoreggia cerebrale! - evviva ... accetterà quando me lo consente – Mez

+0

Signore, ** non ci sono abbastanza upvotes ** nel mondo ** per ringraziarti ** ... – xDaizu

-3

Bene base64_decode() può essere trovato nella voce di manuale base64_encode.
E sono sicuro che hanno un modo per convertire il formato RAW nei commenti inserimento manuale SHA1, se è troppo difficile per voi a scrivere da soli

+0

Non sto convertendo hash, proprio come gli hash sono confezionato. – Mez

+0

sì, stavo leggendo troppo veloce –