كيفية القيام ترميز Base64 في node.js؟


Answers

تحتوي الإجابة المقبولة على ما يعتبر مشكلة أمان في إصدارات العقد أكبر من 6 (على الرغم من أنه يبدو من المحتمل أن يكون هذا الإدخال قد تم فرضه على سلسلة).

يتم إهمال منشئ Buffer وفقا documentation .

Here مثال على مشكلة عدم حصانة يمكن أن تنتج عن استخدامه في مكتبة ws.

يجب قراءة المقتطفات البرمجية:

console.log(Buffer.from("Hello World").toString('base64'));
console.log(Buffer.from("SGVsbG8gV29ybGQ=", 'base64').toString('ascii'));
Question

هل يحتوي node.js على ترميز Base64 المدمج حتى الآن؟

السبب في أنني أسأل هذا هو أن final() من crypto يمكن فقط إخراج عرافة ، البيانات الثنائية أو ascii. فمثلا:

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');

وفقًا للمستندات ، يمكن أن يعمل update() إخراج البيانات التي تم ترميزها باستخدام base64. ومع ذلك ، لا يدعم final() base64. حاولت وانكسر.

إذا فعلت هذا:

var ciph = cipher.update(plaintext, 'utf8', 'base64');
    ciph += cipher.final('hex');

ثم ماذا يجب أن أستخدم لفك التشفير؟ عرافة أو base64؟

لذلك ، أنا أبحث عن وظيفة إلى base64-encode الإخراج السداسي المشفرة الخاصة بي.

شكر.