Node.js henüz yerleşik base64 kodlamasına sahip değil mi?
Bunu sormak nedeni olduğuna final()
gelen crypto
can sadece çıkış altıgen, ikili veya ASCII veri. Örneğin:
var cipher = crypto.createCipheriv('des-ede3-cbc', encryption_key, iv);
var ciph = cipher.update(plaintext, 'utf8', 'hex');
ciph += cipher.final('hex');
var decipher = crypto.createDecipheriv('des-ede3-cbc', encryption_key, iv);
var txt = decipher.update(ciph, 'hex', 'utf8');
txt += decipher.final('utf8');
Dokümanlara göre, update()
base64 kodlu veri çıktısı verebilir. Ancak final()
base64'ü desteklemez. Denedim ve kırılacak.
Bunu yaparsam:
var ciph = cipher.update(plaintext, 'utf8', 'base64');
ciph += cipher.final('hex');
O zaman şifre çözme için ne kullanmalıyım? Hex veya base64?
Bu nedenle, şifreli onaltılık çıktı base64-kodlamak için bir işlev arıyorum.
cipher.final('base64')
işler