我需要为每个上传的文件生成一个哈希值。哈希值必须与 git 为给定文件生成的哈希值相同(通俗地说,就是 sha1 的变体)。

我查看了/nodejs-v0.10.22-src/core-modules-sources/lib/crypto.js。该库指的是 native 绑定(bind)。为了可移植性,我不想依赖 native 代码。

有没有办法在 JavaScript 中将自定义加密算法添加到 NodeJS 加密模块中,以便我可以执行以下操作:

var hash = crypto.createHash('githash'); 
hash.update('...'); 

请您参考如下方法:

简单的回答是否定的,您无法扩展 crypto 模块中可用的哈希值。检查给定的哈希值 https://github.com/joyent/node/blob/v0.10.22/src/node_crypto.cc#L2856 基本上取决于 OpenSSL 支持的哈希值。

您也许可以对 createHash 进行猴子补丁以重定向到您自己的代码,但不建议这样做。

相反,我建议在 bodyParser 完成后重新处理您的中间件使用情况以散列数据,或者跳过标准 bodyParser 并针对您的特定用例实现您自己的。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!