أدلة ومقارناتالتجارة في المغربالفوترة

ختم الفاتورة ببصمة SHA-256: ما الذي تثبته وما الذي لا تثبته

يغير تعديل بايت واحد البصمة. تعلم فحص السلامة دون الخلط بين الهاش والتوقيع والختم الزمني والقبول الضريبي.

بقلم BelloCommerce

·

تحوّل بصمة SHA-256 محتوى ملف إلى بصمة من أربعة وستين حرفًا ست عشريًّا. فالملف نفسه يعطي البصمة نفسها؛ وأي اختلاف، ولو ضئيلًا، يعطي بصمةً أخرى شبه أكيدة. وهذا مفيد للتحقق من أن ملف XML المصدَّر مطابق للملف الذي خُتم لحظة الإصدار. لكن البصمة وحدها لا تسمّي صاحبها، ولا تعطي تاريخًا موثوقًا قانونًا، ولا تثبت أي إيداع لدى المديرية العامة للضرائب.

بصمة SHA-256 لفاتورة إلكترونية
بصمة SHA-256 لفاتورة إلكترونية.

القراءة السليمة للبصمة

  • تحسب SHA-256 بصمةً حتميةً على المحتوى الثنائي بالضبط.
  • تغيير حرف أو مسافة أو الترميز يكفي لتغيير النتيجة.
  • تطابق البصمتين يثبت تطابق المحتوى المقارَن، لا صدق المضمون التجاري.
  • البصمة وحدها ليست توقيعًا إلكترونيًّا ولا ختمًا مؤهَّلًا ولا توقيتًا موثوقًا.
  • احفظ البصمة في بيان منفصل وراقبها قبل الإرسال أو الاسترجاع.
  • يختم BelloPOS محليًّا ملف UBL الصادر ويعيد تصدير هذه النسخة بعينها.

1. كيف يصير مبلغ 1 200 درهم بصمةً

لا تفهم الخوارزمية فاتورةً ولا درهمًا. بل تقرأ سلسلةً من الوحدات الثنائية: وسوم XML والحروف والأرقام والمسافات وفواصل الأسطر. وتُنتج دائمًا 256 بتًّا، تُعرَض عادةً في أربعة وستين حرفًا من 0 إلى 9 ومن a إلى f. فلفاتورة صغيرة ولملف مضغوط كبير بصمةٌ بالطول نفسه. ولفهم المضمون قبل حساب بصمته، اقرأ دليل UBL 2.1.

الإجراء على النسخةالبصمة المنتظرةالتأويل
بلا أي تعديلمطابقةالمحتوى المقارَن متطابق
1 200.00 تصير 1 201.00مختلفةالمضمون تغيّر
إضافة مسافةمختلفةالتمثيل الثنائي تغيّر
ترميز جديد أو فواصل أسطر مختلفةمختلفةقد يبدو النص متطابقًا، لا المحتوى الثنائي
إعادة التسمية دون مسّ المضمونمطابقةالاسم لا يدخل في بصمة الملف
الضغط داخل ملف مضغوط جديدبصمة الملف المضغوط مختلفةالأرشيف كائن آخر يجب مراقبته

ويجعل أثرُ الانهيار البصمتين بلا أي علاقة بصرية ولو كان التغيير طفيفًا. فلا ينبغي إذن البحث عن الحقل الذي تغيّر بقراءة البصمات؛ بل يُلاحَظ فقط أن المحتوى لم يعد نفسه، ثم تُقارَن الملفات أو يُرجَع إلى المصدر.


2. ما تثبته البصمة فعلًا

إذا كانت لديك بصمةٌ مرجعية محفوظة على حدة وطابقها الحساب الحالي، أمكنك استنتاج أن الملف المختبَر يحمل المحتوى نفسه الذي يحمله المرجع. وفي BelloPOS، تُحسَب هذه المرجعية لحظة تلقي الفاتورة رقمها ووضع ملف XML في الطابور المحلي. ويكرّر بيان تصدير XML والملف المضغوط البصمةَ من أجل المقاربة.

  • السلامة: كشف أن ملفًّا لم يعد مطابقًا للنسخة المرجعية.
  • إزالة التكرار: التعرف على نسختين متطابقتين في المحتوى رغم اختلاف الاسمين.
  • التسليم: تدوين بصمة الملف المرسَل والتحقق من النسخة المتوصَّل بها.
  • الاسترجاع: مراقبة أن النسخة الاحتياطية تعيد بالضبط الكائن المنتظر.
  • المسار: ربط رقم في البيان بملف XML المقابل له.

وتتوقف جودة الإثبات على حماية المرجع. فإذا عدّل مهاجمٌ ملف XML والبصمةَ المخزَّنة في المجلد نفسه، فلن تكشف مقارنةٌ ساذجة شيئًا. فانسخ إذن البيان أو السجل إلى موضع محمي، وقلّص الصلاحيات، واحتفظ بعدة نسخ احتياطية.

3. ما لا تثبته بصمة SHA-256

البصمة أداةُ سلامة، لا خلاصةً قانونية كونية.

السؤالهل تجيب البصمة وحدها؟الإثبات التكميلي
من أصدر الفاتورة؟لاالهوية والصلاحيات والسجل وربما التوقيع
متى وُجدت؟لاسجل محمي أو توقيت موثوق
هل نسبة الضريبة صحيحة؟لاالقواعد الجبائية والمراقبة المحاسبية
هل توصل بها الزبون؟لاإشعار بالتسليم
هل قبلتها المديرية العامة للضرائب؟لاجواب القناة الرسمية
هل تغيّر الملف؟نعم، إن كان المرجع موثوقًاإعادة الحساب والمقارنة الكاملة

فلا تقل «فاتورة موقَّعة» وأنت تقصد «ملفًّا محسوبة بصمته». فالتوقيع الإلكتروني يربط معطيات بموقّع وبآلية تحقق؛ والختم الإلكتروني يؤدي دورًا آخر؛ والتوقيت يقدّم معلومةً زمنية. ويقارن دليل الخاتم والتوقيع والختم بين هذه المفاهيم.

التحقق من بصمة ملف XML
التحقق من بصمة ملف XML.

البصمة ليست مصادقةً جبائية

فتدوين بصمة SHA-256 في بيان صادر عن BelloPOS يثبت الخيار التقني للتطبيق ويتيح تحققًا محليًّا. وهو ليس رمزًا صادرًا عن المديرية العامة للضرائب ولا توقيعَ موظف عمومي ولا اعتمادًا ولا إشعارًا بالإيداع.

4. اختبار عملي على نسخة

صدّر ملف XML، واحسب بصمة SHA-256 بأداة محلية موثوقة، وانسخ النتيجة في ورقة مراقبتك. ثم استنسخ الملف، وغيّر حرفًا غير حساس في النسخة، وأعد الحساب. ويجب أن تختلف السلسلتان. ثم احذف النسخة المعدَّلة، لا الأصل المختوم.

وعلى نظام Windows، يتيح الأمر Get-FileHash اختيار SHA256. وعلى macOS وLinux، يشيع الأمر shasum -a 256. فتحقق من المسار الدقيق قبل تنفيذ الأمر وقارن الأحرف الأربعة والستين. فلقطةٌ جزئية أو ثمانية أحرف أولى لا تكفي في سجل إثباتك.

وأعد الاختبار بعد النسخ إلى مفتاح تخزين، أو بعد استرجاع نسخة احتياطية، أو بعد التوصل من طرف مكتب المحاسبة. والاختلاف لا يعني غشًّا تلقائيًّا: فقد يفسّره نقلٌ ناقص، أو أداةٌ تعيد كتابة النص، أو تغيّرٌ في فواصل الأسطر، أو ملفٌ خاطئ. لكن يجب توقيف المسار إلى حين التحديد.

5. الختم داخل BelloPOS

عند إصدار فاتورة أو إشعار دائن مشمول، يبني BelloPOS ملف UBL 2.1، ويحسب بصمة SHA-256 على سلسلته بترميز UTF-8، ويحفظ ملف XML والبصمة والرقم والنوع والحالة وتاريخ الختم المحلي في الطابور. والعملية غير قابلة للتكرار في أثرها: فإعادة الطبع لا ينبغي أن تُنتج ختمًا ثانيًا للفاتورة نفسها.

اللحظةالموضوعالنتيجة
الإصدارملف UBL بعينهبصمة ونسخة محلية
إعادة الطبعالوثيقة نفسهالا إيداع جديد ولا بصمة جديدة
تصدير فرديملف XML المحفوظمحتوى مطابق للمختوم
تصدير الفترةعدة ملفات XMLملف مضغوط وبيان بالبصمات
الإرسالخارج BelloPOS اليومالإشعار بالتوصل يُحفَظ على حدة

وتوجد هذه الوظيفة ابتداءً من Go وتشتغل دون إنترنت. وهي لا تمنع ضياع الحاسوب ولا تعوّض إذن النسخة الاحتياطية. فالبصمة تساعد على التحقق من استرجاع؛ لكنها لا تسترجع شيئًا. فاربطها بقواعد أرشفة الفواتير.

أخطاء ينبغي تجنبها

  • حساب بصمة ملف PDF بينما يصف البيان ملف XML.
  • مقارنة جزء من السلسلة فقط.
  • إعادة الحساب بعد فتح الملف وحفظه.
  • الاحتفاظ بالملف وبمرجعه الوحيد في المجلد نفسه القابل للتعديل.
  • تسمية البصمة توقيعًا إلكترونيًّا.
  • تقديم البصمة إشعارًا بالتوصل من المديرية العامة للضرائب.
  • تجاهل اختلاف لأن الفاتورة تبدو متطابقة.
  • إغفال اختبار النسخ المسترجَعة.

أسئلة متكررة

هل تشفّر بصمة SHA-256 الفاتورة؟

لا. فالبصمة لا تمنع القراءة ولا تتيح استرجاع المضمون. فالتشفير للسرية؛ وبصمة SHA-256 هنا للسلامة.

هل يمكن إعادة بناء ملف XML انطلاقًا من بصمته؟

لا. فالبصمة أحادية الاتجاه. ويجب الاحتفاظ بالملف وبنسخه الاحتياطية.

هل لملفين متطابقين البصمة نفسها؟

نعم إذا كان محتواهما الثنائي متطابقًا تمامًا. فمجرد تغيير في الترميز قد يُنتج بصمةً مختلفة.

هل بصمة SHA-256 توقيع إلكتروني؟

لا. فالتوقيع يضيف بوجه خاص رابطًا مع موقّع وتحققًا من مفتاح. والبصمة وحدها لا توفّر ذلك.

هل تثبت البصمة الإيداع لدى المديرية العامة للضرائب؟

لا. فجواب القناة الرسمية وحده يستطيع توثيق التوصل أو الحالة. وBelloPOS لا يرسل مباشرةً اليوم.

لماذا يحسب BelloPOS البصمة لحظة الإصدار؟

لربط النسخة المهيكلة بالوثيقة التي تلقت رقمها للتوّ، ثم إعادة تصدير المحتوى نفسه بدل إعادة بنائه لاحقًا.

الخلاصة

تجيب بصمة SHA-256 إجابةً ممتازة عن سؤال ضيّق: هل هذا الملف مطابق للمرجع؟ وهي لا تجيب عن «من» ولا «متى» ولا «لماذا» ولا عن الصحة الجبائية ولا عن القبول لدى المديرية العامة للضرائب. فاستعملها ضمن سلسلة إثبات، لا اختصارًا للمطابقة كلها.

المصادر

الأرقام والقواعد المذكورة أعلاه مأخوذة من هذه الصفحات، بتاريخ الاطلاع المذكور في المقال.

اختم وصدّر وتحقق محليًّا

اختبر خطة Go بفاتورة تجريبية، وأعد حساب بصمتها، واجعل النسخة نفسها تُتحقَّق بعد تسليمها إلى مكتب محاسبتك.

لمزيد من التعمق

أدلة عملية أخرى في الموضوع نفسه: