Tag: sha1

在NodeJS中不断从stream中生成sha1哈希

我想从stream中读取数据时更新的stream不断生成SHA1哈希。 我需要但不会工作: const crypto = require('crypto'); const hash = crypto.createHash('sha256'); hash.update('abc'); console.log(hash.digest('hex')); // hash of abc hash.update('def'); console.log(hash.digest('hex')); // hash of abcdef 这将不起作用,因为一旦调用了hash.digest(),就不能再次调用hash.update()。 每次添加块时,如何获得string的散列? 没有将整个string加载到内存中 …而不是将整个string再次写入哈希,而是重新使用已经写好的数据块加上新的数据块。 Node.js文档中的所有示例都要求stream在计算SHA1之前结束。 一旦发生这种情况,您不能再将数据写入stream中。 https://nodejs.org/api/crypto.html#crypto_class_hash const crypto = require('crypto'); const hash = crypto.createHash('sha256'); hash.on('readable', () => { const data = hash.read(); if (data) { console.log(data.toString('hex')); // Prints: // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50 } }); […]

将python哈希摘要移植到节点js

我试图将一个Python脚本移植到Node,而且我已经陷入了SHA1哈希。 以下Python代码: import hashlib user = 'test' ret = hashlib.sha1(user.encode('utf-8')).digest() print(ret); 打印出来: b'\xa9J\x8f\xe5\xcc\xb1\x9b\xa6\x1cL\x08s\xd3\x91\xe9\x87\x98/\xbb\xd3' 在Node中我需要这种格式的SHA1哈希。 这个Javascript: var crypto = require('crypto'); var generator = crypto.createHash('sha1'); generator.update(new Buffer('test')); console.log(generator.digest('binary')); 版画 ©Jå̱sÓé/»Ó 我如何让Node以与Python相同的风格产生输出? 这显然不是二进制或hex,python输出格式是什么?

避免在Node.js服务器上重复内容

我有小型图像托pipe,我意识到有很多重复的内容。 我想在将来通过使用校验和或者散列代码来消除这个问题,新加载的文件将被散列,与现有的图像散列数据库相比,如果它已经存在,用户将被显示现有的图像链接。 所有在一个例子 我的设置是准系统Node.js + jQueryfile upload +2目录(一个用于论坛上传,另一个用于直接网页上传)。 什么是最好的(快速和可靠的)散列和数据库设置为了做到这一点考虑到可能在每个目录中有数千或百万个文件? 我认为MD5或SHA1是矫枉过正,可能需要大量的资源。 我想知道是否有更简单的解决scheme。 统计: 〜每天上传1000张图片 〜400 kb平均图像大小 在服务器中〜35,000图像 〜30%的重复内容(使用MD5进行testing)

node.js将csv的每一行转换为sha1并输出到新的csv

我是一个新手,所以要温柔。 高级别,我有一堆电子邮件地址在.csv。 我想将每个电子邮件地址转换为sha1出于隐私的目的。 我正在尝试在node.js,这是我到目前为止: var crypto = require('crypto'); var fs = require('fs'); var parse = require('csv-parse'); var async = require('async'); var inputFile = 'emailList.csv'; var outputFile = 'sha1List.csv'; var hash = crypto.createHash('sha1') var parser = parse({delimiter: ','}, function (err, data) { async.eachSeries(data, function (line, callback) { // do something with the line hash.write(line).then(function() { // […]

制作一个UUID(rfc4122)用于哈希完整内容的命名空间?

我正在学习编写博客软件,所以我阅读了需要唯一ID的Atom。 似乎你应该做的是一个urn:uuid:type IRI。 得到一个全球唯一的标识符对我来说是有意义的,就是对这个post的内容进行散列。 我已经编写了代码(见下面)来生成符合rfc-4122标准的UUID(版本5),除了我不确定要为命名空间添加什么内容。 RFC表示说我们应该使用什么名字空间,而不是说它的范围,并且显示了一些例子,其中没有一个是正确的。 我GOOGLE了一下,没有看到任何超出RFC的build议。 命名空间本身应该是一个UUID,所以我不应该把“整个post的散列”当作命名空间。 要生成一个版本5 uuid的[除6位以外的所有内容],可以将名称空间UUID(原始格式)与您的“名称”连接起来。 所以…这是我的问题:是否有一个名称空间UUID使用文档的全部内容作为“名称”? 或者我应该随机(v4)UUID,并使用它作为我自己的“整个职位”命名空间? 或者是其他东西? 谢谢,杰森 PS我写了一个UUID生成器的节点,现在使用ns:URL命名空间。 如果您有兴趣,请input以下代码: // Copyright 2011 Jason Woofenden — CC0 // // An almost correct rfc-4122 v5 UUID generator for node (see http://node.js) // // To test, run this with node, then compare the out put of these: // // curl http://localhost:8129/foo […]

node.js和PHP之间的SHA1哈希差异

我想将这部分node.js代码转换为PHP代码。 (加工) function generateHashedPass (password, salt) { var byteSalt = new Buffer(salt, 'base64'); var bytePass = new Buffer(password, 'ucs2'); var byteResult = Buffer.concat([byteSalt, bytePass]); return sha1.update(byteResult).digest('base64'); } console.log(generateHashedPass('111111', 'UY68RQZT14QPgSsfaw/F+w==') === 'L0xc787MxCwJJaZjFX6MqxkVcFE=' ? "Algo correct" : "Algo wrong" ); 现在我有这样的东西在PHP中:( 不工作) public function getHashedPass($pass, $salt) { $base_salt = unpack('H*', base64_decode($salt)); $base_pass = unpack('H*', mb_convert_encoding($pass, 'UCS-2', 'auto')); […]

Node.js和sha1

http://www.php.net/manual/en/function.sha1.php string sha1 ( string $str [, bool $raw_output = false ] ) 如果可选的raw_output设置为TRUE,则sha1摘要将以原始二进制格式返回,长度为20,否则返回值为40个字符的hex数字。 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 […]