تحويل النص إلى ست عشري

قراءة تفريغ للذاكرة، أو التحقق مما أرسله بروتوكول فعلا عبر الشبكة، أو تفكيك لغز في مسابقة CTF: عاجلا أو آجلا ستحتاج إلى البايتات الكامنة خلف السلسلة النصية. الصق نصا فيعيده إليك هذا المحوّل بايتا بايتا بالنظام الست عشري، إما مفصولا بمسافات كتفريغ ست عشري (48 65 6c 6c 6f) أو متصلا دفعة واحدة (48656c6c6f). وبتبديل الوضع يسير الاتجاه عكسيا: يعود الست عشري الذي تلصقه نصا مقروءا.

كيف يعمل المحوّل

  1. 1

    اختر الاتجاه

    من النص إلى الست عشري يرمّز ما تكتبه، ومن الست عشري إلى النص يعيده حروفا.

  2. 2

    اختر الفاصل

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

  3. 3

    الصق مدخلاتك

    يُقرأ النص بترميز UTF-8. وقد يصل الست عشري مع البادئتين 0x أو \x أو مع فواصل ومسافات ونهايات أسطر: تُزال عنك تلقائيا.

  4. 4

    حوّل وانسخ

    تظهر النتيجة في الأسفل مع زر نسخ. ولا يجري تنزيل أي ملف.

لماذا الست عشري لا العشري

يغطي الرقم الست عشري الواحد 4 بتات بالضبط، ومن ثم يغطي رقمان بايتا واحدا بالضبط في كل مرة. أما النظام العشري فيلزمك بالحساب لتعرف هل ما زالت القيمة تتسع (هل 128 داخل المدى؟ وماذا عن 256؟)، بينما يُظهر الست عشري ذلك مباشرة: 00 أصغر بايت وff أكبره، وكل بايت بينهما بعرض حرفين. هذا الاتساق هو سبب اعتماد الست عشري في تفريغات الذاكرة والتقاط الحزم وتواقيع الملفات وأكواد الألوان.

ما الذي ينتجه هذا المحوّل فعلا

  • بحروف صغيرة دائما. يكتب المرمّز 6c ولا يكتب 6C أبدا. والنظام الست عشري لا يفرّق بين حالتي الحرف، فلا يضيع شيء، لكن إن كانت صيغتك المقصودة تشترط الحروف الكبيرة فمرّر الناتج على محوّل حالة أحرف.
  • رقمان لكل بايت دائما. رمز الجدولة هو 09 لا 9، حتى تبقى حدود البايتات قابلة للعد.
  • مسافة أو لا شيء. هذان الفاصلان الوحيدان. ولا تُضاف عند الترميز أي بادئة 0x أو \x، فأضفها في محررك إن احتجت إلى سلاسل هروب بلغة C أو بايثون.
  • UTF-8 من أوله إلى آخره. يُقاس النص بالبايتات لا بالحروف.

الست عشري ويونيكود

يشغل الحرف H بايتا واحدا في UTF-8، فيصير 48. أما كل ما يخرج عن ASCII الصرف فيشغل أكثر:

الحرف الست عشري في UTF-8 البايتات
A 41 1
é c3 a9 2
€ e2 82 ac 3
🚀 f0 9f 9a 80 4

فكلمة Hello تُرمّز إلى 48 65 6c 6c 6f، أي خمسة حروف وخمسة بايتات، بينما تُرمّز café إلى 63 61 66 c3 a9: أربعة حروف لكن خمسة بايتات، لأن الحرف é يحتاج إلى اثنين. والحروف العربية كلها من فئة البايتين، فكلمة «سلام» بحروفها الأربعة تعطي ثمانية بايتات: d8 b3 d9 84 d8 a7 d9 85. فإن أعطت سلسلة قصيرة أزواجا ست عشرية أكثر مما توقعت، فهذا هو السبب عادة.

ما الذي يقبله فاك الترميز

الصق أيا من هذه الصيغ لتستعيد Hello:

  • 48 65 6c 6c 6f، على نمط التفريغ الست عشري
  • 48656c6c6f، خاما وبلا فواصل
  • 0x48656c6c6f، على نمط الثوابت الصحيحة
  • \x48\x65\x6c\x6c\x6f، سلاسل الهروب في C وبايثون
  • 48,65,6C,6C,6F، مفصولا بفواصل وبأي خليط من الحروف الكبيرة والصغيرة

تُزال البادئات والفواصل والمسافات والجدولات ونهايات الأسطر قبل فك الترميز. وما عدا ذلك لا يُزال: فالشرطة في 48-65، أو علامة # أمام كود لون، أو حرف بعد f، كل ذلك يوقف فك الترميز، وكذلك يفعل عدد فردي من الأرقام، لأن نصف بايت لا يصير حرفا. وفي هذه الحالات لا تُرجع الأداة شيئا بدل أن تخمّن نتيجة ناقصة. فإن ظل حقل الناتج فارغا، فهنا موضع البحث عن السبب.

ألوان الست عشري: التدوين نفسه لا المحتوى نفسه

يستعمل #ff8800 نظام الأساس 16 ذاته، غير أن تلك البايتات الثلاثة تصف قنوات الأحمر والأخضر والأزرق لا حروفا. أزل علامة # وفك ترميزه هنا فستحصل على ثلاثة بايتات خام لا تشكّل نصا مقروءا. استعمل لهذا الغرض منتقي ألوان.

الأسئلة الشائعة

نعم. الست عشري وbase16 اسمان لنظام واحد: ستة عشر رمزا (من 0 إلى 9 ومن a إلى f)، يحمل كل منها 4 بتات.

ليس من هذه الأداة. يكتب المرمّز بحروف صغيرة دائما. ولأن النظام الست عشري لا يفرّق بين حالتي الحرف فإن 4f و4F هما البايت نفسه، فمرّر الناتج على أي محوّل حالة أحرف إن كانت صيغتك تشترط ذلك. أما فاك الترميز فيقرأ الصيغتين دون اعتراض.

لا يقبل فاك الترميز إلا الأرقام من 0 إلى 9 والحروف من a إلى f بعدد زوجي، بعد إزالة البادئتين 0x و\x والفواصل والمسافات. والشرطة أو علامة # أو حرف بعد f أو نقص رقم واحد يجعل المدخل غير صالح، وتفضّل الأداة نتيجة فارغة على نتيجة خاطئة. أعد عدّ الأرقام وابحث عن علامة ترقيم تسللت بينها.

معظم الإيموجي يقع في المستويات التكميلية من يونيكود، وهي التي يخزنها UTF-8 في أربعة بايتات. أما حروف ASCII الصرفة فتبقى ببايت واحد لكل حرف، ولهذا يعطي النص الإنجليزي زوجا لكل حرف بينما لا يفعل النص العربي.

لا. هذا حقل نصي، فهو يعالج ما يمكنك كتابته أو لصقه. أما البيانات الثنائية فترميز base64 أوجز لها وأسهل في النقل.

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

أدوات ذات صلة

الأداة متاحة بلغات أخرى