¿Hay alguna manera de agregar un algorithm criptográfico personalizado en el module crypto nodejs? ¿Cómo?

Necesito generar un hash en cada file cargado. El hash debe ser idéntico al hash git generado para un file dado (que es, en un término común, una variante de sha1).

Miré en /nodejs-v0.10.22-src/core-modules-sources/lib/crypto.js . La biblioteca se refiere al enlace nativo. Para la portabilidad, no quiero depende del código nativo.

¿Hay alguna manera de agregar un algorithm criptográfico personalizado en el module crypto nodejs, en JavaScript, de modo que pueda hacer esto:

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

La respuesta rápida es no, no puede extender los valores hash disponibles en el module de crypto . El hash dado se comtesting en https://github.com/joyent/node/blob/v0.10.22/src/node_crypto.cc#L2856 y básicamente depende de los valores hash admitidos por OpenSSL.

Es posible que pueda createHash parche de mono createHash para networkingirigirlo a su propio código, pero no sería aconsejable.

En su lugar, recomendaría volver a trabajar en el uso de middleware para analizar los datos una vez que complete bodyParser, o omitir el bodyParser estándar e implementar el suyo propio para su caso de uso específico.

Algunos puntos a tener en count aquí:

  1. git no usa un hash diferente. Es sha1. Simplemente agrega algunos caracteres adicionales a los datos. Mira aquí . Agregar otro hash para esto no está justificado.

  2. Lo necesita únicamente para bodyParser de connect, considere agregar un parche allí. Pero,

  3. bodyparser se eliminará en connect 3.0. Se espera que usted analice cuerpo / formularios usted mismo.