Node.js kripto modülü, kriptografik işlemleri gerçekleştirme sürecini kolaylaştırır. İşte nasıl kullanılacağı.
Kriptografi, iletişim ve verileri yalnızca yetkili tarafların deşifre edebileceği biçimlere dönüştürerek güvence altına alma uygulamasıdır.
Node.js kripto modülü, Node.js uygulamalarına kriptografik işlevsellik sağlayan yerleşik bir modüldür. Şifreleme, şifre çözme, karma oluşturma, dijital imzalar, güvenli rasgele sayı üretimi ve daha fazlasını içeren bir dizi kriptografik yetenek sunar.
Burada, Node.js kripto modülünün çeşitli uygulamalarını ve bunları uygulamalarınızın güvenliğini sağlamak için nasıl kullanabileceğinizi keşfedeceksiniz.
karma
Hashing, tek yönlü bir kriptografik tekniktir belirli bir anahtarı veya dizgiyi karma veya özet olarak bilinen sabit boyutlu bir çıktıya dönüştürmek için kullanabileceğiniz.
Hashing, tek yönlü bir işlevdir, yani bir anahtarı veya dizgiyi hash ettiğinizde, oluşturulan hashten orijinal değeri alamazsınız.
Node.js kripto modülü, SHA-256, SHA-512, MD5 ve daha fazlası gibi çeşitli karma işlevlerini destekler.
Kripto modülünü kullanarak verileri karma hale getirebilirsiniz. hash oluştur karma algoritmayı bağımsız değişken olarak alan yöntem. Yöntem bir döndürür Doğramak kullanarak verileri karma hale getirmek için kullanabileceğiniz nesne güncelleme Ve sindirmek yöntemler.
Örneğin:
sabit kripto = gerekmek('kripto');
sabit veri = "şifre";
// hash nesnesi yaratılıyor
sabit hashAlgo = kripto.createHash("sha256")// hashlenecek veriyi geçiriyoruz
hashAlgo.update (veri);// gerekli formatta hash oluşturma
sabit hash = hashAlgo.digest("altıgen");
konsol.kayıt(`Hash: ${karma}`);
Yukarıdaki örnekte, kripto modülünün hash oluştur ile bir karma nesne yarattı sha256 karma algoritma. bu güncelleme hash nesnesindeki yöntem, girdi verilerini alır ve hash eder. Sonra sindirmek yöntemi, çıktı hash değeri formatını belirten bir kodlama parametresi alır ve hash'i belirtilen formatta döndürür (altıgen).
Karma, verilerin, parola depolamanın, dijital imzaların ve daha fazlasının bütünlüğünü doğrulamak için kullanışlıdır.
Rastgele Veri Oluşturma
Kriptografik olarak güvenli rasgele veriler, çeşitli kullanım durumları için kriptografi, oyun ve testlerde sıklıkla gereklidir.
Kriptografide, şifreleme ve şifre çözme algoritmaları için anahtarlar, tuzlar ve başlatma vektörleri oluşturmak için rastgele verileri kullanabilirsiniz.
Oyun oynarken, hileyi önlemek ve oyunun öngörülebilir olmadığından emin olmak için oyun seviyeleri, karakterler, öğeler ve daha fazlasını oluşturmak için rastgele verileri kullanabilirsiniz.
Test sırasında, gerçek dünya senaryolarını ve son durumları simüle etmek için kullanabilirsiniz.
Node.js kripto modülünü kullanarak rastgele veriler üretebilirsiniz. rasgele Bayt yöntem. Bu yöntem, argüman olarak bir sayı alır ve rasgele baytlardan oluşan bir arabellek döndürür.
Bu sayı, yöntemin üreteceği bayt boyutunu temsil eder. Ancak, sayı şundan büyük olmamalıdır: 2³¹ - 1 (2147483647), 32 bit işaretli tamsayı ile temsil edilebilecek maksimum değerdir.
Örneğin:
sabit kripto = gerekmek("kripto");
// rastgele baytlar oluştur
sabit randomBytes = kripto.randomBytes(32);// hex'e dönüştür
sabit randomString = randomBytes.toString("altıgen");
konsol.log (rastgeleDize); //rastgele diziyi konsola kaydeder
Yukarıdaki kod bloğu, konsola 64 onaltılık karakterden (32 bayt) oluşan rastgele bir dizi oluşturur ve günlüğe kaydeder.
Kriptografik olarak güvenli rasgele veriler oluşturmak önemlidir çünkü rasgele verilerin öngörülebilir olmamasını ve saldırganların bunları manipüle edememesini veya tahmin edememesini sağlar.
Node.js'de Şifreleme ve Şifre Çözme
Şifreleme, düz metni okunamaz bir forma dönüştürme işlemidir. (şifreli metin) bir şifreleme algoritması ve bir gizli anahtar kullanarak.
Şifre çözme, şifrelemenin tersidir. Şifreli metnin aynı şifreleme algoritması ve anahtarı kullanılarak tekrar düz metne dönüştürülmesi işlemidir.
Node.js kripto modülü, çeşitli şifreleme ve şifre çözme algoritmaları için destek sağlar, AES (Gelişmiş Şifreleme Standardı), DES (Veri Şifreleme Standardı) ve RSA dahil (Rivest–Shamir–Adleman).
Kripto Modülünü Kullanarak Node.js'de Verileri Şifreleme
kullanarak verileri şifreleyebilirsiniz. kripto.createCipheriv() şifreleme algoritmasını, gizli anahtarı ve bir başlatma vektörünü girdi olarak alan yöntem. Gizli anahtar, kullandığınız şifreleme algoritmasına bağlıdır. Örneğin, için aes-256 algoritması içinde CBC modunda, anahtar uzunluğu 32 bayt olmalıdır.
Yöntem bir döndürür şifre kullanarak verileri şifrelemek için kullanabileceğiniz nesne güncelleme() Ve final() yöntemler. Şifrelenmiş veriler tipik olarak onaltılık bir dizi veya arabellek olarak temsil edilir.
Örneğin:
sabit kripto = gerekmek("kripto");
// Şifreleme ve şifre çözme için gizli bir anahtar oluşturun.
sabit gizliKey = kripto.randomBytes(32);// Bir başlatma vektörü oluştur
sabit iv = kripto.randomBytes(16);// şifrelenecek veriler
sabit düz Metin = "Bu gizli bir mesajdır";// şifre nesnesi oluştur
sabit şifre = kripto.createCipheriv("aes-256-cbc", gizliAnahtar, iv);// verileri şifrele
izin vermek şifreli Metin = cipher.update (düz Metin, "utf-8", "altıgen");// şifrelemeyi sonlandır
şifreliMetin += cipher.final("altıgen");
konsol.log (şifreli Metin);
Yukarıdaki örnek, kripto modülünü kullanarak CBC modunda aes-256 kullanarak düz metni nasıl şifreleyebileceğinizi gösterir. kullanarak bir gizli anahtar ve bir başlatma vektörü oluşturur. kripto.randomBytes yöntem. Ardından, kullanarak bir şifre nesnesi oluşturur. kripto.createCipheriv yöntemini kullanarak düz metin mesajını şifreler. cipher.update Ve şifre.son yöntemler.
Sonuç, aynı gizli anahtarı ve IV'ü kullanarak şifresini çözebileceğiniz, şifrelenmiş mesajın onaltılık bir dizisidir.
Kripto Modülünü Kullanarak Node.js'deki Verilerin Şifresini Çözme
Kripto modülünü kullanarak şifrelenmiş verilerin şifresini çözebilirsiniz. crypto.createDecipheriv() şifre çözme algoritmasını, gizli anahtarı ve bir başlatma vektörünü girdi olarak alan yöntem. Yöntem bir döndürür deşifre kullanarak verilerin şifresini çözmek için kullanabileceğiniz nesne Deşifre.güncelleme() Ve Deşifre.son() yöntemler.
Örneğin:
// Deşifre nesnesi oluştur
sabit deşifre = kripto.createDecipheriv("aes-256-cbc", gizliAnahtar, iv);// verilerin şifresini çöz
izin vermek decryptedText = decipher.update (şifreliMetin, "altıgen", "utf-8");// şifre çözmeyi sonlandır
decryptedText += deşifre.son("utf-8");
konsol.log (şifresi çözülmüş Metin); // Bu gizli bir mesajdır
Yukarıdaki örnek, şifrelediğiniz verilerin aynı algoritmayı, gizli anahtarı ve başlatma vektörünü kullanarak şifrelenmiş verilerin şifresini nasıl çözebileceğinizi gösterir.
kullanarak bir Decipher nesnesi oluşturur. crypto.createDecipheriv yöntem. Ardından, kullanarak verilerin şifresini çözer. deşifre.güncelleme Verileri, giriş kodlamasını ve çıkış kodlamasını bağımsız değişken olarak alan yöntem. Son olarak, kullanarak şifre çözme sürecini sonlandırır. deşifre.son yöntem. Bu yöntemi çağırmak, Decipher nesnesinin verilerin şifresini çözmek için daha uzun süre kullanılabilmesini sağlar. Sonuç, düz bir metin dizesidir.
Şifreleme ve şifre çözme, hassas verileri korumak ve gizliliğini korumak için çok önemlidir. E-ticaret, çevrimiçi bankacılık, veri depolama ve daha pek çok alanda çeşitli gerçek dünya uygulamalarına sahiptirler.
Node.js kripto Modülünün Diğer Uygulamaları
Karma oluşturma, kriptografik olarak güvenli rasgele veriler oluşturma ve şifreleme ve şifre çözmenin yanı sıra, Dijital imzaların orijinalliğini ve bütünlüğünü doğrulamaya yardımcı olan dijital imzaları imzalamak ve doğrulamak için Node.js kripto modülü belgeler. Ek olarak, aktarım sırasında verilerin kurcalanmasını ve gizlice dinlenmesini önlemek amacıyla veri aktarımı için akışları güvenli hale getirmek üzere kripto modülünü kullanabilirsiniz.