125 votes

comment obtenir le hachage sha1 d'une chaîne dans NODEjs

Je suis en train de créer un serveur websocket écrit dans NODE.js

Pour obtenir le serveur de travailler j'ai besoin d'obtenir le hash SHA1 de la chaîne.

Ce que j'ai à faire est expliqué dans la Section 5.2.2, page 35 de la documentation.

REMARQUE: à titre d'exemple, si la valeur de l' "Sec-WebSocket-Key" l'en-tête du client, poignée de main ont été "dGhlIHNhbXBsZSBub25jZQ==", le serveur voudrais ajouter les chaîne "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" pour la forme chaîne "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA- C5AB0DC85B11". Le serveur va ensuite prendre le hachage SHA-1 de cette chaîne, ce qui donne la valeur 0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea. Cette valeur est ensuite encodée en base64, de donner de l' valeur en "s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", ce qui serait retourné dans l' "Sec-WebSocket-Accept" - tête.

296voto

maerics Points 47743

Voir la fonction cypto.createHash() et les fonctions hash.update() et hash.digest() associées:

 var crypto = require('crypto')
  , shasum = crypto.createHash('sha1');
shasum.update("foo");
console.log(shasum.digest('hex'));
// "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"
 

7voto

Alex Turpin Points 17272

S'il vous plaît lisez et considérez fortement mon conseil dans les commentaires de votre post. Cela étant dit, si vous avez encore une bonne raison de le faire, consultez cette liste de modules crpyto pour Node. Il a des modules pour traiter à la fois sha1 et base64.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X