pii-toolkit-cy
بنيت pii-toolkit-cy لتنقيح البيانات الشخصية وتشفير كل حقل على حدة في Node.js. وتوفّر redact() وcreatePiiCipher() من دون اعتماديات وقت التشغيل.
المشكلة
بنيتها لمهمتين منفصلتين: إزالة المعلومات الشخصية من النص الحر قبل مغادرته النظام، وتشفير حقول الهوية عند التخزين.
قد تخطئ أنماط التنقيح فتعدّ أرقام الطلبات أو مبالغ الدفع بيانات شخصية. وفي تشفير الحقول، أتجنب إعادة استخدام IV أو إحلال دالة تجزئة سريعة محل دالة اشتقاق المفاتيح.
طريقة الحل
أستخدم في redact() أنماطًا متحفّظة للبريد الإلكتروني وبطاقات الدفع وأرقام IBAN وأرقام الهاتف. وهذه الأنماط مصممة لترك الأعداد الصحيحة المجرّدة، مثل أرقام الطلبات، من دون تغيير.
أستخدم AES-256-GCM في createPiiCipher()، مع IV عشوائي جديد لكل قيمة، وscrypt لاشتقاق المفاتيح. ويتحقق فك التشفير الموثّق من عدم التلاعب بالبيانات.
أوفّر صادرات ESM وأنواع TypeScript من دون اعتماديات وقت التشغيل.
النتيجة
أُبقي الكود متاحًا على GitHub. أستخدم redact() لتنقيح النص الحر قبل تمريره، وcreatePiiCipher() للحقول التي يلزم تشفيرها عند التخزين. والمكتبة غير منشورة على npm.