تقنية

فك Base64 في بايثون: متى يُرفض الحرف الدخيل؟

الإدخال الدخيل مقبول افتراضيًا ومرفوض مع التحقق
الإدخال نفسه، خياران. [1] [2]

قبول الإدخال يتغير بالتحقق. [1] [2]

الخلاصة السريعة

في مثالنا، الوضع الافتراضي يتجاهل #؛ validate=True يرفضه. [1] [2]

  • W#A== يعيد b'X' افتراضيًا. [1] [2]
  • الإدخال نفسه يرفع binascii.Error مع التحقق. [1] [2]
  • الناتج المقبول بايتات، لا سلسلة نصية. [1] [2]
  • WA== النظيف يعيد b'X' في الوضعين. [1] [2]
  • التجربة في 3.12.14 بأبجدية قياسية ومدخل ASCII؛ لا تصلح الحشو. [1] [2]

المثال

import base64 as b
from binascii import Error
raw='W#A=='
print(b.b64decode(raw))
try:
 print(b.b64decode(raw,
                  validate=True))
except Error:
 print('Error')

[1] [2]

المخرجات: b'X' ثم Error. [1] [2]

الحرف الدخيل

# خارج الأبجدية. القيمة الافتراضية لـvalidate هي False؛ تُحذف الأحرف الدخيلة قبل فحص الحشو. التحقق يرفضها بدل تجاهلها. [1] [2]

المقارنة

النص النظيف مقبول أيضًا مع التحقق؛ الرفض هنا متعلق بالحرف الدخيل. [1] [2]

التحقق يقبل النص النظيف ويرفض الدخيل
التحقق لا يرفض كل إدخال. [1] [2]

النطاق

المثال يستخدم الخيارات الأساسية، دون أبجدية بديلة أو خيارات أضيفت في 3.15. [1] [2]

المراجع

  1. Python: Base64
  2. CPython 3.12.14: base64.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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