Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 有没有办法将自定义加密算法添加到nodejs加密模块中?怎么用?_Node.js_Git_Hash_Cryptography_Node Crypto - Fatal编程技术网

Node.js 有没有办法将自定义加密算法添加到nodejs加密模块中?怎么用?

Node.js 有没有办法将自定义加密算法添加到nodejs加密模块中?怎么用?,node.js,git,hash,cryptography,node-crypto,Node.js,Git,Hash,Cryptography,Node Crypto,我需要在每个上传的文件上生成一个哈希。散列必须与为给定文件生成的散列git相同(通俗地说,它是sha1的一个变体) 我查看了/nodejs-v0.10.22-src/core modules sources/lib/crypto.js。该库引用本机绑定。对于可移植性,我不想依赖于本机代码 有没有一种方法可以在JavaScript中将自定义加密算法添加到nodejs加密模块中,以便我可以执行以下操作: var hash = crypto.createHash('githash'); hash.up

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

我查看了
/nodejs-v0.10.22-src/core modules sources/lib/crypto.js
。该库引用本机绑定。对于可移植性,我不想依赖于本机代码

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

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

快速回答是否定的,您不能扩展
加密
模块中可用的哈希。给定的哈希在 基本上取决于OpenSSL支持的哈希

您可能可以使用monkey patch
createHash
重定向到您自己的代码,但这是不可取的


相反,我建议在bodyParser完成后重新使用中间件来散列数据,或者跳过标准的bodyParser,为您的特定用例实现自己的bodyParser。

这里需要注意的几点:

  • git不使用不同的散列。是沙一号。它只是给数据添加了一些额外的字符。看见为此添加另一个哈希是不合理的

  • > p>你只需要为Connect的体分析器,考虑在那里添加一个补丁。但是,

  • 将在connect 3.0中删除bodyparser。您需要自己解析body/forms


  • 与编写独立模块相比,您试图从使用本机加密模块中获得什么好处?我尝试使用
    connect.bodyParser
    ,它接受哈希算法的选项。指定的哈希必须是字符串,并传递给加密库。我在bodyParser上没有看到任何哈希选项,因此很难判断,但我留下了答案。