JavaScript MD5 Kütüphanesi (Artı avantajlar, kullanımlar ve örnekler)

MD5 kitaplıkları genellikle JavaScript geliştiricileri tarafından istemci veya sunucu tarafında dosya verilerini doğrulamak için gereklidir. Şimdiye kadar, en popüler kütüphane blueimp-md5 kütüphanesidir.


Blueimp-md5 Kütüphanesini edinin

Bu kütüphane, ilk olarak dosya verilerinin bir sağlama toplamını (veya başka bir veri dizesini) hesaplamak ve daha sonra bilinen sağlama toplamını yeniden hesaplanan bir sağlama ile karşılaştırarak dosya veri bütünlüğünü doğrulamak için kullanılan MD5 karma işlevini uygular..

Aşağıda MD5’in ne olduğunu açıklayacağız, ancak benim gibi iseniz ve ayrıntıları daha az umursamıyorsanız, müşteri tarafı ve sunucu tarafı uygulama bölümlerimize atlayabilirsiniz..

MD5 nedir?

MD5, giriş dizesi ne kadar büyük veya küçük olursa olsun, herhangi bir veri girişinin sabit boyutlu bir çıkış dizesiyle eşlenmesini sağlayan standartlaştırılmış 1 yönlü bir işlevdir.

Girdileri, hash işlevlerini ve hash toplamlarını gösteren grafik

Girişteki küçük bir değişiklik çıkışı önemli ölçüde değiştirir.

Tüm MD5 uygulamaları, genellikle 32 basamaklı onaltılık sayı olarak ifade edilen bir veri dizesinden 128 bit karma değeri üretir.

Örneğin, foo bar baz ab07acbb1e496801937adfa772424bf7 olur.

Aynı veri girişi her zaman aynı çıkışla eşlenir. Farklı girişlerden özdeş çıkışlar nadirdir ancak gerçekleşebilir.

Linux sistemlerinde md5sum, MD5 karma işlemi için komut satırı aracıdır. Diğer işletim sistemleri benzer komutlara sahiptir.

Tarayıcıda (istemci tarafı) ve NodeJS (sunucu tarafı) ortamında MD5 karma işleminin nasıl yapıldığına bakalım.

İstemci Tarafı Kurulum ve Kullanımı

İlk olarak, md5.min.js kütüphanesini indirin ve HTML’nize ekleyin:

1 <komut dosyası src ="js / md5.min.js"></senaryo>

Daha sonra, JS uygulama kodunuzda, bir dizenin onaltılık kodlu MD5 karmasını yalnızca argüman olarak dize değeriyle md5 yöntemini çağırarak hesaplayabilirsiniz:

1 <em>var</ em> karma = md5 ("değer"); // "2063c1608d6e0baf80249c42e2be5804"

Aşağıda kütüphane API’sını kullanma konusunda daha fazla örnek göreceğiz.

NodeJS ile Sunucu Tarafında Kurulum ve Kullanım

MD5 kitaplığını NodeJS ile sunucu tarafında kullanmak için önce blueimp-md5 paketini yükleyin:

1 npm yükleme blueimp-md5

Bir sorgu URL dizesini MD5 karması için MD5 paketinin nasıl kullanılabileceğini gösteren basit bir örnek için, aşağıdaki kodla server.js adlı bir dosya oluşturun:

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

(gerektiren"http") .createServer (function (req, res) {

 

    var md5 = gerektirir ("blueimp-md5"),

        url = zorunlu ("uRL"),

        sorgu = url.parse (req.url) .query;

 

    res.writeHead (200, {"İçerik türü": "metin / düz"});

 

    // url sorgusunun MD5 karmasını hesaplayın ve yazdırın:

    res.end (MD5 (sorgu));

 

}). Dinle (8080, "localhost");

 

console.log ("Http: // localhost: 8080 adresinde çalışan sunucu / MD5 karmasını görmek için tarayıcınızda bu URL’yi açın");

Şimdi bu NodeJS uygulamasını çalıştırabiliriz:

1 düğüm server.js

Şimdi http: // localhost: 8080 adresine göz atıyorsanız, bu URL’nin MD5 çıktısını görmelisiniz: 37a6259cc0c1dae299a7866489dff0bd.

Http: // localhost: 8080 /? Foo tarama&bar&baz başka bir MD5 karması üretecek.

API Örnekleri

Kitaplıkta en fazla üç bağımsız değişken alabilen tek bir işlev vardır, md5 ():

  1. Gereklidir: MD5 karması yapılacak giriş dizesi bulunmalıdır.
  2. İsteğe bağlı: HMAC anahtar değeri, gizli paylaşılan bir anahtarla birlikte MD5 gibi şifreleme sağlama işlevleri kullanılarak mesaj kimlik doğrulaması için kullanılır.
  3. İsteğe bağlı: Boole değeri, “true” olarak ayarlanırsa, çıktıyı ham dize olarak kodlar. Aksi takdirde, çıktı onaltılık kodlu bir dizedir. Onaltılı kodlama daha taşınabilir, ancak ham dizenin kullanımı bazı durumlarda daha basit olabilir.

Bu API’nın bazı kod örneklerini inceleyelim:

Belirli bir dize değerinin onaltılık kodlu MD5 karmasını hesaplayın:

1 var hash = md5 ("değer"); // "2063c1608d6e0baf80249c42e2be5804"

Belirli bir dize değeri ve anahtarının onaltılık kodlu HMAC-MD5 karmasını hesaplayın:

1 var hash = md5 ("değer", "anahtar"); // ‘01433efd5f16327ea4b31144572c67f6’

Belirli bir dize değerinin ham MD5 karmasını hesaplayın:

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

Belirli bir dize değeri ve anahtarının ham HMAC-MD5 karmasını hesaplayın:

1 var hash = md5 ("değer", "anahtar", doğru); // ‘x01C>xfd_x162 ~ xa4xb3x11DW, gxf6’

MD5 Güvenlik Uyarısı ve Alternatifleri

MD5 karma işlevinin güvenliği, çarpışmaya karşı yeterince dayanıklı olmadığı için artık zayıf olarak görülse de, MD5 karma işlevi, tarihi nedenlerden ve her türlü ortamda uygulamaların kullanılabilirliğinden dolayı hala çok popüler.

Daha güvenli bir karma işlevine sahip olmak istiyorsanız, MD5 yerine SHA 2 veya SHA 3 mesaj özetini kullanın. Crypto-js bu karma işlevlerinin iyi bir JavaScript uygulamasıdır. GitHub’da başka birçok uygulama daha var.

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