2013-01-17 9 views
7

qui è il mio codicenodejs md5 con base64 del digest risultato sbagliato

var sig = crypto.createHash('md5') 
    .update('The quick brown fox jumps over the lazy dog') 
    .digest('base64'); 
console.log(sig) 

risultati in nhB9nTcrtoJr2B01QqQZ1g== (su Mac OS X).

Sto provando a generare la stessa firma da un'app ios. I risultati sono gli stessi in Objective C, come nei siti convertitore online: la stringa

The quick brown fox jumps over the lazy dog

convertito md5, ottengo 9e107d9d372bb6826bd81d3542a419d6,

ei base64 di questo è OWUxMDdkOWQzNzJiYjY4MjZiZDgxZDM1NDJhNDE5ZDY=.

Perché queste stringhe sono diverse? Non è questo ciò che sta facendo nodejs crypto module? Quali sono gli equivalenti dell'algoritmo nodejs per ottenere l'hash md5 digerito con base64?

+0

Solo così sono sicuro di aver capito la domanda. Vuoi l'hash md5 della stringa 'The quick brown fox salta sul cane pigro' codificato in base64 o vuoi che la stringa venga convertita automaticamente in base64? –

+0

@ThomasWatson, voglio la stringa codificata in base64 dell'hash md5 della 'The quick brown fox..' – nikravi

risposta

13

La stringa OWUxMDdkOWQzNzJiYjY4MjZiZDgxZDM1NDJhNDE5ZDY= è la versione codificata in base 64 della stringa 9e107d9d372bb6826bd81d3542a419d6 che è in sé l'hash md5 della stringa di testo semplice The quick brown fox jumps over the lazy dog.

Se si vuole fare questo in nodo è necessario prima di ottenere l'hash md5 in esadecimale:

var crypto = require('crypto'); 
var s = 'The quick brown fox jumps over the lazy dog'; 
var md5 = crypto.createHash('md5').update(s).digest('hex'); 

Ora avete l'hash MD5 come esadecimale (9e107d9d372bb6826bd81d3542a419d6). Ora tutto ciò che dovete fare è convertirlo in base64:

new Buffer(md5).toString('base64'); 
+0

Grazie, Thomas! – nikravi

+4

Non puoi semplicemente usare '.digest(). ToString ('base64')'? A proposito, avresti bisogno di 'nuovo Buffer (md5, 'hex')' perché funzioni correttamente, ora stai ricevendo base64 di hex digest, non dell'hash binario originale. – Fluffy

Problemi correlati