2012-12-21 12 views
6

Sto provando ad usare il digest md5 di un allegato che ho messo sul CouchDB, ma non riesco a capire quale formato usi.Qual è il formato digest md5 dell'allegato CouchDB?

{ 
"_id":"ef467479af422db0c388fa00b3000d40", 
"_rev":"3-6d1015e7d25103180817136eefa9f942", 
"_attachments":{ 
    "foo":{ 
     "content_type":"application/octet-stream", 
     "revpos":2, 
     "digest":"md5-yDbs1scfYdqqLpxyFb1gFw==", 
     "length":1952913,"stub":true } 
    } 
} 

Che md5 non è esadecimale ma è ancora ASCII, come si usa?

risposta

7

La parte del digest dopo il prefisso md5- si presenta come nel formato Base-64.

Se si esegue il parsing in Javascript, la funzione atob può riattivarla in dati binari.

Supponendo che quanto sopra è corretto allora l'equivalente esadecimale è:

c8 36 ec d6 c7 1f 61 da aa 2e 9c 72 15 bd 60 17 
+0

che era, grazie, ora sono in grado di usarlo. Accetterò la tua risposta al più presto –

+0

BTW chi è interessato a come ottenere bas64 md5 in java: [link] (http://stackoverflow.com/questions/3479067/how-to-decode-with-messagedigest-base64) –

0

per chi cerca di lavorare con il formato digest utilizzato da CouchDB utilizzando nodejs è possibile attivare le Base64 codificati digerire in una stringa esadecimale "normale" rimuovendo il prefisso "md5-" e poi fare:

new Buffer('yDbs1scfYdqqLpxyFb1gFw==', 'base64').toString('hex') 

per andare nella direzione opposta e creare la stringa digest da un valore esadecimale:

new Buffer('c836ecd6c71f61daaa2e9c7215bd6017', 'hex').toString('base64') 
Problemi correlati