قدم FileMaker Pro 16 مجموعة جديدة من الوظائف البرمجية (Functions) في مجال تشفير البيانات ولكن هذه المرة على مستوى الحقل.
في الإصدارات السابقة من FileMaker كان يمكن تشفير ملف قاعدة البيانات بالكامل؛ أما الآن -مع الوظائف البرمجية (Functions) الجديدة- يمكن اختيار تشفير حقل دون حقل آخر، مما يوفر المزيد من الخيارات لتخزين المعلومات الحساسة.
ويقصد بعملية التشفير هنا هو تحويل النص العادي (Plaintext) القابل للقراءة إلى نص مشفر (Ciphertext) غير قابل للقراءة وذلك باستخدام خوارزميات التشفير ومفتاح خاص كما يوضح الشكل التالي:
الوظائف الجديدة (New Functions)
- وظيفة CryptEncrypt للتشفير، ووظيفة CryptDecrypt لفك التشفير.
- وظيفة CryptEncryptBase64 للتشفير، ووظيفة CryptDecryptBase64 لفك التشفير.
وكلتا الوظيفتان تقومان بنفس الدور إلا أنهما تختلفان بتنسيق البيانات المرجعة، حيث أن الوظيفة الأولى تقوم بإرجاع البيانات المشفرة بتنسيق ملف ثنائي (Binary File)، والوظيفة الثانية تقوم بإرجاع البيانات المشفرة بتنسيق نص (Text). وفي موضوعنا هذا؛ سنتناول الوظيفة الثانية بشيء من التفصيل كمثال على طريقة تشفير البيانات الجديدة في FileMaker Pro 16.
CryptEncryptBase64
تقوم هذه الوظيفة بتشفير البيانات وتركيبها كالتالي:
CryptEncryptBase64(data;key)
حيث:
Data = أي نص أو حقل
Key = أي نص أو حقل يستخدم كمفتاح لتشفير البيانات.
CryptDecryptBase64
تقوم هذه الوظيفة بفك تشفير البيانات وتركيبها كالتالي:
CryptDecryptBase64(text;key)
حيث:
Text = أي نص أو حقل تم تشفيره بوظيفة CryptEncryptBase64
Key = أي نص أو حقل تم استخدامه كمفتاح للتشفير.
تطبيق عملي
وجدنا أفضل طريقة لشرح كيفية استخدام هذه الوظائف الجديدة هو عمل تطبيق عملي، لذلك قمنا بعمل مثال بسيط كما يظهر بالصورة أعلاه.
يقوم المستخدم بإدخال النص العادي في حقل Plaintext، ثم يقوم بإدخال المفتاح الخاص والذي سيستخدم في عملية التشفير، ثم يضغط على زر تشفير (Encrypt) حتى يتم استدعاء وظيفة CryptEncryptBase64 وتخزين النتيجة أو النص المشفر في حقل Ciphertext.
عكسيا؛ عند الضغط على زر فك التشفير (Decrypt) يتم استدعاء وظيفة CryptDecryptBase64 ليقوم بتحويل النص المشفر في حقل Ciphertext إلى نص عادي باستخدام نفس المفتاح الخاص المستخدم سابقا وتخزين النتيجة أو النص العادي في حقل Test لغرض المقارنة.
هذا؛ ويمكنكم تنزيل الملف مفتوح المصدر من الرابط التالي: