2017-05-17 60 views
5

Şu anda NodeJS ile kalan verileri şifrelemeye çalışıyorum, createCipher'un recommended olmadığı Node API belgelerinde okudum.Nodejs createCipher vs createCipheriv

crypto.createCipher uygulanması() sindiren MD5 olarak ayarlanmış bir algoritma, bir yineleme ve hiç tuz OpenSSL fonksiyonu EVP_BytesToKey kullanarak anahtarları elde eder. Tuz eksikliği, aynı parolayla aynı parola oluşturduğunda sözlük saldırılarına izin verir. Düşük iterasyon sayım ve kriptografik olarak güvenli olmayan karma algoritma şifrelerin çok hızlı bir şekilde test edilmesine izin verir. yerine ait PBKDF2 kullanmak OpenSSL tavsiyesi doğrultusunda

o geliştiricilerin bir anahtar ve kendi kullanarak crypto.pbkdf2 üzerine IV () ve türetmek önerilir EVP_BytesToKey Şifreleme nesne oluşturmak için crypto.createCipheriv() kullanmak .

hala istirahat verileri şifrelemek için kalıcı ve güvenli bir yol createCipher mı? Bu yöntem onaylanmadı mı? İyi bilgilendirilmiş bir saldırganın verileri şifresini çözmesi mümkün mü?

createCipheriv kullanarak bir çözüm her zaman createCipher üzerinden tercih edilebilir mi?

Diğer tüm detaylar veya tavsiyeler takdir edildi.

cevap

-2

/createDecipheriv createCipheriv ders tercih kullanım örnek:

const crypto = require('crypto') function encrypt(text){ var cipher = crypto.createCipheriv('aes-256-cbc', new Buffer('passwordpasswordpasswordpassword'), new Buffer('vectorvector1234')) var crypted = cipher.update(text, 'utf8', 'hex') crypted += cipher.final('hex') return crypted } function decrypt(text){ var decipher = crypto.createDecipheriv('aes-256-cbc', new Buffer('passwordpasswordpasswordpassword'), new Buffer('vectorvector1234')) var dec = decipher.update(text, 'hex', 'utf8') dec += decipher.final('utf8') return dec }

+1

Neden tercih edilir? – andrsnn

+0

iv - https://en.wikipedia.org/wiki/Initialization_vector anlamına gelir – IvanM