Node.js和sha1

时间:2013-03-16 02:32:56

标签: php node.js cryptography base64 sha1

http://www.php.net/manual/en/function.sha1.php

string sha1 ( string $str [, bool $raw_output = false ] )

如果可选的raw_output设置为TRUE,则sha1摘要将以原始二进制格式返回,长度为20,否则返回的值为40个字符的十六进制数。


crypto = require("crypto");
console.log( new Buffer(crypto.createHash('sha1').update("some text").digest()).toString('base64') );
// N8KqY8OHc8KYw5lURzJiw6HCoAV8HmMuw5p3
console.log( new Buffer(crypto.createHash('sha1').update("some text").digest("hex")).toString('base64') );
// MzdhYTYzYzc3Mzk4ZDk1NDQ3MzI2MmUxYTAwNTdjMWU2MzJlZGE3Nw==
console.log( new Buffer(crypto.createHash('sha1').update("some text").digest("base64")).toString('base64') );
// TjZwangzT1kyVlJITW1MaG9BVjhIbU11Mm5jPQ==

<?php
echo base64_encode(sha1("some text"));
// MzdhYTYzYzc3Mzk4ZDk1NDQ3MzI2MmUxYTAwNTdjMWU2MzJlZGE3Nw==
echo base64_encode(sha1("some text", true)); // <-- how to reproduce it on the nodejs?
// N6pjx3OY2VRHMmLhoAV8HmMu2nc=
?>

1 个答案:

答案 0 :(得分:6)

> crypto.createHash('sha1').update("some text").digest('base64')
'N6pjx3OY2VRHMmLhoAV8HmMu2nc='