node.js的crypto
模块(至少在撰写本文时)仍然不被认为是稳定的,因此API可能会发生变化。事实上,互联网上每个人用来获取文件哈希值(md5,sha1,...)的方法都被认为是遗留的(来自Hash
类的文档)(注意:强调矿):
类:哈希
用于创建数据的哈希摘要的类。
是一个可读可写的流,写入的数据用来计算hash,流的可写端结束后,使用read()方法获取计算出的hash摘要,同时支持传统的update和digest方法。
由crypto.createHash返回。
尽管hash.update
和hash.digest
被认为是遗留的,但引用的代码片段上方显示的示例正在使用它们。
在不使用那些遗留方法的情况下,获得哈希值的正确方法是什么?
6条答案
按热度按时间a11xaf1n1#
从问题中引用的片段:
[the Hash类]它是一个既可读又可写的流。写入的数据用于计算哈希。一旦流的可写端结束,使用read()方法获取计算的哈希摘要。
所以你需要散列一些文本是:
如果你想获取一个文件的哈希值,最好的方法是从文件中创建一个ReadStream,并将其导入哈希值:
owfi6suc2#
ES6版本返回一个Promise作为hash摘要:
8ftvxx2r3#
卡洛斯的简短回答:
sirbozc54#
进一步的润色,ECMAScript 2015
hash.js
:至少在v10.x之前有效:
pvcm50d15#
我成功地使用了Node模块hasha,代码变得非常简洁和简短。它返回一个promise,所以你可以用await来使用它:
fkaflof66#