Biblioteca JavaScript MD5 (plus avantajele, utilizările și exemplele)

  • Home
  • Uncategorized
  • Biblioteca JavaScript MD5 (plus avantajele, utilizările și exemplele)
Biblioteca JavaScript MD5 (plus avantajele, utilizările și exemplele)

Biblioteca JavaScript MD5 (plus avantajele, utilizările și exemplele)

Bibliotecile MD5 sunt adesea solicitate de dezvoltatorii JavaScript, fie pe partea client, fie pe server, pentru a verifica datele fișierului. De departe, cea mai populară bibliotecă este biblioteca blueimp-md5.


Obțineți biblioteca blueimp-md5


Această bibliotecă implementează funcția de hashing MD5, care este utilizată mai întâi pentru calcularea unei sume de control a datelor fișierului (sau a oricărui alt șir de date) și mai târziu pentru validarea integrității datelor fișierului prin compararea sumei de control cunoscută cu una recalculată.

Mai jos vă vom explica ce este MD5, dar dacă sunteți ca mine și nu vă pasă mai puțin de detalii, puteți sări la secțiunile noastre de implementare pe partea clientului și pe partea serverului.

Ce este MD5?

MD5 este o funcție standardizată unidirecțională care permite oricărei date de intrare să fie mapată la un șir de ieșire de dimensiune fixă, indiferent cât de mare sau mic este șirul de intrare.

O mică modificare a intrării modifică drastic ieșirea.

Toate implementările MD5 produc o valoare hash de 128 de biți dintr-un șir de date, care este de obicei exprimată ca un număr hexazecimal de 32 de cifre.

De exemplu, foo bar baz devine ab07acbb1e496801937adfa772424bf7.

Aceeași intrare de date se va mapa întotdeauna la aceeași ieșire. Ieșirile identice de la diferite intrări sunt rare, dar se pot întâmpla.

Pe sistemele Linux, md5sum este instrumentul de linie de comandă pentru hashing MD5. Alte sisteme de operare au comenzi similare.

Să aruncăm o privire la cum să faceți hashing MD5 în browser (partea client) și în mediul NodeJS (partea server).

Instalare și utilizare pe partea clientului

Mai întâi, descărcați biblioteca md5.min.js și includeți-o în HTML:

Apoi, în codul aplicației dvs. JS, puteți calcula hash-ul MD5 codificat hex al unui șir prin simpla apelare a metodei md5 cu valoarea șirului ca argument:

var hash = md5(„valoare”); // „2063c1608d6e0baf80249c42e2be5804”

Mai jos vom vedea mai multe exemple despre utilizarea API-ului bibliotecii.

Instalare și utilizare pe partea de server cu NodeJS

Pentru a utiliza biblioteca MD5 pe partea de server cu NodeJS, mai întâi instalați pachetul blueimp-md5:

npm instalează blueimp-md5

Pentru un exemplu simplu care arată modul în care pachetul MD5 poate fi utilizat pentru a hashing MD5 un șir de adresă URL de interogare, creați un fișier numit server.js cu următorul cod:

require(“http”).createServer(funcție (req, res) { var md5 = require(“blueimp-md5”), url = require(“url”), query = url.parse(req.url).query; res.writeHead(200, {„Content-Type”: „text/plain”}); // calculează și imprimă hash-ul MD5 al interogării URL: res.end(md5(query)); }).listen(8080) , “gazdă locală”); console.log(„Serverul rulează la http://localhost:8080/ deschideți această adresă URL în browser pentru a vedea hash-ul MD5”);

Acum putem rula această aplicație NodeJS:

node server.js

Dacă acum navigați la http://localhost:8080/, ar trebui să vedeți rezultatul MD5 al acelui URL: 37a6259cc0c1dae299a7866489dff0bd.

Navigarea la http://localhost:8080/?foo&bar&baz ar produce un alt hash MD5.

Exemple API

Biblioteca are o singură funcție, md5() , care poate lua până la trei argumente:

  1. Obligatoriu: șirul de intrare care urmează să fie MD5 hashing trebuie să fie prezent.
  2. Opțional: valoarea cheii HMAC este utilizată pentru autentificarea mesajelor folosind funcții hash criptografice, cum ar fi MD5, în combinație cu o cheie partajată secretă.
  3. Opțional: o valoare booleană, dacă este setată la „adevărat”, codifică rezultatul ca șir brut. În caz contrar, rezultatul este un șir codificat hex. Codificarea hexadecimală este mai portabilă, dar șirul brut poate fi mai simplu de utilizat în unele cazuri.

Să trecem prin câteva exemple de cod ale acestui API:

Calculați hash-ul MD5 codificat hex al unei valori șir date:

var hash = md5(„valoare”); // „2063c1608d6e0baf80249c42e2be5804”

Calculați hash-ul HMAC-MD5 codificat hex al unei anumite valori și cheie de șir:

var hash = md5(„valoare”, „cheie”); // ‘01433efd5f16327ea4b31144572c67f6’

Calculați hashul MD5 brut al unei valori date șir:

var hash = md5(„valoare”, null, adevărat); // ‘cxc1`x8dnx0bxafx80$x9cBxe2xbeXx04’

Calculați hashul brut HMAC-MD5 pentru o valoare și o cheie de șir date:

var hash = md5(„valoare”, „cheie”, adevărat); // „x01C>xfd_x162~xa4xb3x11DW,gxf6”

Avertisment de securitate și alternative MD5

Deși securitatea funcției de hash MD5 este acum considerată slabă deoarece nu este suficient de rezistentă la coliziuni, funcția de hash MD5 este încă foarte populară din motive istorice și disponibilitatea implementărilor în tot felul de medii.

Dacă doriți să aveți o funcție hash mai sigură, utilizați rezumatul mesajului SHA 2 sau SHA 3 în loc de MD5. Crypto-js este o implementare JavaScript bună a acestor funcții hash. Există și multe alte implementări pe GitHub.

Dezvăluirea agentului de publicitate

Gazduirweb este o resursă online gratuită care oferă utilizatorilor conținut valoros și servicii de comparare. Pentru a menține această resursă 100% gratuită, primim compensații de la multe dintre ofertele afișate pe site. Alături de factorii cheie de revizuire, această compensație poate afecta modul în care și locul în care apar produsele pe site (inclusiv, de exemplu, ordinea în care apar). Gazduirweb nu include întregul univers al ofertelor disponibile. Opiniile editoriale exprimate pe site sunt strict ale noastre și nu sunt furnizate, susținute sau aprobate de agenții de publicitate.

Politica noastră de revizuire editorială

Site-ul nostru se angajează să publice conținut independent, precis, ghidat de reguli editoriale stricte. Înainte ca articolele și recenziile să fie publicate pe site-ul nostru, acestea sunt supuse unui proces amănunțit de revizuire efectuat de o echipă de editori independenți și experți în materie pentru a asigura acuratețea, actualitatea și imparțialitatea conținutului. Echipa noastră editorială este separată și independentă de agenții de publicitate ai site-ului nostru, iar opiniile pe care le exprimă pe site-ul nostru sunt proprii. Pentru a citi mai multe despre membrii echipei noastre și despre mediul lor editorial, vă rugăm să vizitați pagina Despre a site-ului nostru.

Leave a Reply

Copyright © 1999 - 2022 Phox Operating Company