On Tue, Jun 12, 2012 at 2:02 AM, Rich Jones <[email protected]> wrote:
> Can somebody help me sanity check something?
>
> I'm hashing some data using crypto.createHash, but the result isn't the same
> as when I hash it using OpenSSL. What gives?
>
> With Node:
>   var file_data = fs.readFileSync(req.files.uploadfile.path, 'utf8');
>   var sha1sum = crypto.createHash('sha1');
>   sha1sum.update(file_data);
>   var d = sha1sum.digest('hex');
>   console.log(d) // 3fb20f227f9d170f9b7631f79cb193631e223541
>
> With OpenSSL:
>    openssl sha1 file.png // 0dec33c8b6db53781aaa2b673723df744012c2c4
>    openssl sha1 /tmp/a8d54b0690c67c1bbaa374bece4f33b8 //
> 0dec33c8b6db53781aaa2b673723df744012c2c4 - hashes of local and uploaded file
> match with oSSL
>
> Anybody have any ideas? I assume it's the way I'm reading the data. I've
> tried readFileSync with 'ascii' and get the same problem.

Read the file as a buffer or 'binary' and you should get the hash you expect.

The PNG presumably contains binary data. If you read that in as ASCII
or UTF-8, it'll get mangled badly.

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to