JavaScript MD5 knjižnica (plus prednosti, upotrebe i primjeri)

Programeri JavaScripta, bilo na strani klijenta ili poslužitelja, često trebaju usluge MD5 biblioteke za provjeru podataka datoteka. Daleko je najpopularnija knjižnica knjižnica blueimp-md5.


Nabavite knjižnicu blueimp-md5

Ova knjižnica implementira MD5 funkciju raspršivanja, koja se prvo koristi za izračunavanje kontrolnog zbroja podataka datoteke (ili bilo kojeg drugog niza podataka), a kasnije za provjeru integriteta podataka datoteka uspoređujući poznati kontrolni zbroj s ponovno izračunatim.

Ispod ćemo objasniti što je MD5, ali ako ste poput mene i ne zanima vas više pojedinosti, možete skočiti na odjeljke za implementaciju na strani klijenta i na poslužitelju..

Što je MD5?

MD5 je standardizirana jednosmjerna funkcija koja omogućuje preslikavanje bilo kojeg unosa podataka u izlazni niz fiksne veličine, bez obzira na to koliko je veliki ili mali ulazni niz.

Grafički prikaz ulaza, hash funkcija i zbirnih vrijednosti

Mala promjena ulaza drastično mijenja izlaz.

Sve MD5 implementacije proizvode 128-bitnu hash vrijednost iz podatkovnog niza, koja se obično izražava kao 32-znamenkasti šesterokutni broj.

Na primjer, foo bar baz postaje ab07acbb1e496801937adfa772424bf7.

Isti unos podataka uvijek će mapirati na isti izlaz. Identični izlazi s različitih ulaza rijetki su, ali se mogu dogoditi.

Na Linux sustavima md5sum je alat naredbenog retka za MD5 hashing. Ostali operativni sustavi imaju slične naredbe.

Pogledajmo kako napraviti MD5 hashing u pregledniku (na strani klijenta) i u okruženju NodeJS (na strani poslužitelja).

Instalacija i upotreba na strani klijenta

Prvo preuzmite biblioteku md5.min.js i uključite je u svoj HTML:

1 <skripta src ="js / md5.min.js"></ script>

Zatim u vašem JS aplikacijskom kôdu možete izračunati heksade MD5 hash-a niza niza jednostavnim pozivanjem md5 metode sa vrijednosti niza kao argumentom:

1 <em>var</ em> hash = md5 ("vrijednost"); // "2063c1608d6e0baf80249c42e2be5804"

U nastavku ćemo vidjeti više primjera upotrebe API-ja biblioteke.

Instalacija i upotreba na strani poslužitelja s NodeJS

Da biste koristili biblioteku MD5 na strani poslužitelja s NodeJS-om, prvo instalirajte paket blueimp-md5:

1 npm instalirajte blueimp-md5

Za jednostavan primjer koji pokazuje kako se MD5 paket može koristiti za MD5 hash-u URL-a upita, stvorite datoteku koja se zove server.js sa sljedećim kodom:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

zahtijevaju ("http") .createServer (funkcija (req, res) {

 

    var md5 = zahtijevati ("blueimp-MD5"),

        url = zahtijevati ("uRL"),

        upit = url.parse (req.url). upit;

 

    res.writeHead (200, {"Content-Type": "tekst / običan"});

 

    // izračunati i ispisati MD5 hash url upita:

    res.end (MD5 (upit));

 

}). Slušati (8080, "localhost");

 

console.log ("Poslužitelj koji radi na http: // localhost: 8080 / otvorite ovaj URL u pregledniku da biste vidjeli njegov hash MD5");

Sada možemo pokrenuti ovu NodeJS aplikaciju:

1 čvor server.js

Ako sada pregledavate http: // localhost: 8080 / trebali biste vidjeti izlaz MD5 tog URL-a: 37a6259cc0c1dae299a7866489dff0bd.

Pregledavanje do http: // localhost: 8080 /? Foo&bar&baz bi proizveo još jedan MD5 hash.

Primjeri API-ja

Biblioteka ima samo jednu funkciju, md5 (), koja može trajati do tri argumenta:

  1. Potreban: Mora biti prisutan ulazni niz za MD5 hashe.
  2. Opcionalno: Vrijednost HMAC ključa koristi se za provjeru autentičnosti poruke koristeći kriptografske hash funkcije poput MD5 u kombinaciji s tajnim zajedničkim ključem.
  3. Opcionalno: Booleova vrijednost, ako je postavljeno na “true”, kodira izlaz kao sirovi niz. Inače je na izlazu šesterokutni niz. Šesterokutno kodiranje je prenosivije, ali neobrađeni niz u nekim se slučajevima može jednostavnije koristiti.

Provjerimo nekoliko primjera koda ovog API-ja:

Izračunajte heksade-kodirani MD5 hash za datu vrijednost niza:

1 var hash = md5 ("vrijednost"); // "2063c1608d6e0baf80249c42e2be5804"

Izračunajte heks-kodirani HMAC-MD5 hash za datu vrijednost niza i ključ:

1 var hash = md5 ("vrijednost", "ključ"); // ‘01433efd5f16327ea4b31144572c67f6’

Izračunajte sirovi MD5 hash za datu vrijednost stringa:

1 var hash = md5 ("vrijednost", null, true); // ‘cxc1`x8dnx0bxafx80 $ x9cBxe2xbeXx04’

Izračunajte sirovi hash HMAC-MD5 zadane vrijednosti niza i ključa:

1 var hash = md5 ("vrijednost", "ključ", pravi); // ‘x01C>xfd_x162-xa4xb3x11DW, gxf6’

Sigurnosno upozorenje i alternative MD5

Iako se sigurnost raspršivanja MD5 funkcije sada smatra slabom jer nije dovoljno otporna na sudar, MD5 hash funkcija i dalje je vrlo popularna iz povijesnih razloga i dostupnosti implementacija u svim vrstama okruženja.

Ako želite imati sigurniju hash funkciju, upotrijebite SHA 2 ili SHA 3 probavljač poruka umjesto MD5. Crypto-js je dobra JavaScript implementacija ovih hash funkcija. Na GitHub-u postoje i mnoge druge implementacije.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me