Tag: sha

NodeJS和Python哈希之间的区别

我试图将一些NodeJS代码移植到Python 3中,但是在获取SHA1哈希的行为相同时遇到了问题。 每种语言的代码都显示了这个问题: 的NodeJS var crypto = require('crypto'); crypto.createHash('sha1'); var h = crypto.createHash('sha1'); h.update(new Buffer('pXHepU2vIdYJuIAN', 'base64').toString('binary')); console.log(h.digest('hex')); // ea70f5b1ec762290cefd37bc0f9a7421dcc93466 Python 3 import hashlib import base64 h = hashlib.sha1() h.update(base64.b64decode(b'pXHepU2vIdYJuIAN')) print(h.hexdigest()) # 74161d2d37d9fff312dd396d5f779133c4bfd88d 我想我以错误的格式传递Pythoninput,就像从匹配的NodeJS代码中移除.toString('binary') 。 任何人都可以向我解释Python代码应该是什么,为什么他们的行为有所不同?

nodejs – shasum不匹配

一定有一些简单的我想念。 我不确定,为什么SHA总和不匹配。 总和是在Linux命令行上使用nodejs和shasum生成的。 user@host:~$ nodejs > var c = require('crypto') undefined > c.createHash('sha1').update('Hello world!','ascii').digest('hex') 'd3486ae9136e7856bc42212385ea797094475802' user@host:~$ shasum – Hello world! 47a013e660d408619d894b20806b1d5086aab03b – 我尝试了不同的选项,如ascii和utf-8与nodejs和shasum ; 但是,不匹配存在。 当然,对于简单的英文文本, ascii和utf-8应该不重要。 虽然,生成和使用散列的应用程序将是nodejs应用程序; 所以,这可能没关系。 但是,我不能解决这个数目会有所不同的事实。 你能指导我吗?

使用NodeJS为Google云端存储创build签名的URL

我正在尝试为Google云端存储中的私人存储文件创build签名; 这样我可以分发一个有时间限制的链接。 目前这样做,这使得签名太短…我哪里错了? var crypto = require("crypto"); var ttl = new Date().getTime() + 3600; var id = 'the_target_file.txt'; var bucketName = 'bucket_name'; var POLICY_JSON = "GET\n" + "\n" + "\n" + ttl + "\n" + '/' + bucketName + '/' + id; // stringify and encode the policy var stringPolicy = JSON.stringify(POLICY_JSON); var base64Policy = […]