Articles of 散列

Windows节点中的快速文件夹散列

我正在构build一个nodewebkit应用程序,使本地目录与远程FTP保持同步。 要在第一次运行应用程序时构build初始索引,我从远程服务器下载包含所有文件及其文件夹的散列的索引文件。 然后我运行这个列表并在用户的本地文件夹中find匹配项。 远程/本地文件夹的总大小可以超过10GB。 正如你所想象的,扫描10GB的个人文件可能会非常缓慢,特别是在普通硬盘(不是SSD)上。 有没有办法在节点有效地得到一个文件夹的散列没有循环和散列每个单独的文件里面? 这样,如果文件夹散列不同,我可以select做昂贵的个人文件检查或不(我是如何做到这一点,我有一个本地索引与远程比较)。

从string获取哈希,如哈希

与包hashids ,我可以从数字散列(和编码y解码) var Hashids = require("hashids"), hashids = new Hashids("this is my salt", 8); var id = hashids.encode(1); 存在一些类似的包从string获取散列? (带编码/解码)

使用encryption模块的streamfunction获取文件的散列(即:没有hash.update和hash.digest)

node.js的crypto模块(至less在写这篇文章的时候)仍然不被认为是稳定的,所以API可能会改变。 事实上,互联网上每个人用来获取文件的散列(md5,sha1,…)的方法都被认为是遗留的(从Hash类的文档中)(注意:我的重点): 类:哈希 用于创build数据散列摘要的类。 这是一个可读写的stream。 写入的数据用于计算散列。 一旦stream的可写端被结束,使用read()方法来获得计算的散列摘要。 传统的更新和摘要方法也被支持。 由crypto.createHash返回。 尽pipehash.update和hash.digest被认为是遗留的,但是在引用片段上方显示的示例正在使用它们。 在不使用这些遗留方法的情况下获取哈希的正确方法是什么?