base64,为什么php加密结果是56位,但nodejs加密结果是28位
发布于 9 年前 作者 coderq 4770 次浏览 最后一次编辑是 8 年前 来自 问答

base64_encode(hash_hmac(‘sha1’, ‘abc’, ‘11111’)) //NjMxNzM0MTdmYjY5MTVjZjhhNWExMTFlMzdlMzg4NTJlOTVjNzEzOA== crypto.createHmac(‘sha1’, ‘11111’).update(‘abc’).digest().toString(‘base64’) //Yxc0F/tpFc+KWhEeN+OIUulccTg=

请问我的nodejs哪里写得有问题,如果加密出56位的串?

2 回复
var hexText = crypto.createHmac('sha1','11111').update('abc').digest('hex');
var hexBuff = new Buffer(hexText);
console.log(hexBuff.toString('base64');

hash_hmac 出来的是一个字符串, digest() 出来的是一个 buffer,digest(‘hex’)出来的才是一个字符串。 另外base64不能算是加密,encode 和 decode 严格来说是编码和解码。当然,自定义转换表可以算是加密。

@klesh 学习了 谢谢

回到顶部