有没有办法将自定义encryptionalgorithm添加到nodejsencryption模块? 怎么样?

我需要为每个上传的文件生成一个哈希。 散列值必须与为给定文件生成的散列值git相同(这是一个俗称的sha1变体)。

我看着/nodejs-v0.10.22-src/core-modules-sources/lib/crypto.js 。 库指的是本地绑定。 为了便于携带,我不想依赖本地代码。

有没有一种方法可以将自定义encryptionalgorithm添加到JavaScript中的nodejsencryption模块中,以便我可以执行以下操作:

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

快速回答是否定的,你不能扩展crypto模块中的哈希。 给定的散列在https://github.com/joyent/node/blob/v0.10.22/src/node_crypto.cc#L2856检查,基本上取决于OpenSSL支持的散列。

您可能可以将monkey-patch createHashredirect到您自己的代码,但不是可取的。

相反,我build议重做中间件的用法,在bodyParser完成之后对数据进行散列处理,或跳过标准的bodyParser并针对您的特定用例实现自己的。

这里需要注意一点:

  1. git不使用不同的散列。 这是sha1。 它只是增加了一些额外的字符数据。 看到这里 。 为此添加另一个散列是不合理的。

  2. 你只需要连接的bodyParser,考虑在那里添加一个补丁。 但,

  3. bodyparser将被删除连接3.0。 你将被期望自己parsing身体/forms。