here is my code
var sig = crypto.createHash('md5')
.update('The quick brown fox jumps over the lazy dog')
.digest('base64');
console.log(sig)
results in nhB9nTcrtoJr2B01QqQZ1g==
(on Mac OS X).
I'm trying to generate the same signature from an ios app. The results are the same in objective c as in online converter sites: the string
The quick brown fox jumps over the lazy dog
converted to md5, I get
9e107d9d372bb6826bd81d3542a419d6
,
and the base64 of this is OWUxMDdkOWQzNzJiYjY4MjZiZDgxZDM1NDJhNDE5ZDY=
.
Why are those strings different? Isn't this what nodejs crypto module is doing? What are the equivalent of nodejs algorithm for getting the md5 hash digested with base64?
The string OWUxMDdkOWQzNzJiYjY4MjZiZDgxZDM1NDJhNDE5ZDY=
is the base64 encoded version of the string 9e107d9d372bb6826bd81d3542a419d6
which is in it self the md5 hash of the plain text string The quick brown fox jumps over the lazy dog
.
If you want to do this in node you first have to get the md5 hash in hex:
var crypto = require('crypto');
var s = 'The quick brown fox jumps over the lazy dog';
var md5 = crypto.createHash('md5').update(s).digest('hex');
Now you have the md5 hash as hex (9e107d9d372bb6826bd81d3542a419d6
). Now all you have to do is convert it to base64:
new Buffer(md5).toString('base64');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With