أداة ترميز Base58Check وفك ترميزه

أضف مجموعًا اختباريًا من 4 بايتات محسوبًا بتجزئة SHA-256 المزدوجة ورمّز النتيجة إلى Base58، أو فك ترميز سلسلة Base58Check وتحقّق من مجموعها الاختباري واقرأ بايت الإصدار والحمولة.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. اختر «ترميز» لإنشاء سلسلة Base58Check، أو «فك الترميز» للتحقق من سلسلة واستعادة بايتاتها.
  2. للترميز، اضبط «صيغة المدخلات» على «ست عشري» وأدخل بايت الإصدار متبوعًا بالحمولة، مثل 00 ثم تجزئة HASH160 من 20 بايت.
  3. أبقِ خيار «مجموع اختباري Base58Check» مفعّلًا. يُضاف المجموع الاختباري عند الترميز ويُتحقق منه عند فك الترميز.
  4. لفك الترميز، الصق السلسلة واضبط «صيغة المخرجات» على «ست عشري». ستحصل على بايت الإصدار والحمولة دون المجموع الاختباري.

كيف يعمل Base58Check

  1. ابدأ ببايت إصدار يحدّد نوع البيانات، متبوعًا بالحمولة، مثل تجزئة مفتاح عام من 20 بايت.
  2. احسب تجزئة SHA-256 لهذه البايتات، ثم احسب تجزئة SHA-256 للنتيجة مرة أخرى، واحتفظ بأول 4 بايتات بوصفها المجموع الاختباري.
  3. ألحِق المجموع الاختباري ورمّز كل شيء بـ Base58. يتحوّل كل بايت 0x00 بادئ إلى 1.

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

بايتات الإصدار الشائعة

بايت الإصدارالبياناتتبدأ السلسلة المرمّزة بـ
0x00عنوان Bitcoin من نوع P2PKH (تجزئة HASH160 من 20 بايت)1
0x05عنوان Bitcoin من نوع P2SH (تجزئة سكربت من 20 بايت)3
0x6Fعنوان P2PKH على شبكة Bitcoin التجريبية (testnet)m أو n
0x80مفتاح خاص بصيغة WIF (32 بايت، مع 0x01 للمفتاح المضغوط)5، أو K / L إذا كان مضغوطًا

عناوين SegWit وTaproot التي تبدأ بـ bc1 تستخدم Bech32 وليس Base58Check، ولا يمكن فك ترميزها هنا. أما عناوين XRP Ledger فتستخدم المجموع الاختباري نفسه مع أبجدية Ripple: اختر Ripple في خيار «الأبجدية».

مثال: من HASH160 إلى عنوان

يتكوّن العنوان الشهير المرتبط بكتلة التكوين (genesis block) في Bitcoin من بايت الإصدار 00 متبوعًا بتجزئة HASH160 من 20 بايت. وعند إدخالها بصيغة «ست عشري» مع تفعيل Base58Check، تحصل على العنوان المعروف:

Input (Hex)  00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18
Output       1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

وفي الشيفرة البرمجية، توفّر حزمة base58 في Python الدالتين b58encode_check() وb58decode_check()، وتوفّر حزمة npm المسماة bs58check الدالتين encode() وdecode().

المواصفات

الأبجدية1-9 A-Z a-z باستثناء 0 O I l
حجم المخرجاتنحو 137% مع مجموع اختباري من 4 بايتات
الحشولا يوجد
المعيارBitcoin Base58Check
حساس لحالة الأحرفنعم

أمثلة

المدخلات (UTF-8)المخرجات
Hello, World!gTazoqFvnegwaKM8v1B33sR
Base64.is6XgW4KVJr8DBmZEAeJ
你好DrMzxHL43oWHbW

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

لماذا يفشل فك الترميز مع خطأ في المجموع الاختباري؟
إما أن حرفًا كُتب خطأً، أو أن الأبجدية المحددة غير صحيحة، أو أن السلسلة Base58 عادية بلا مجموع اختباري. يجب فك ترميز سلاسل Base58 العادية، مثل عناوين Solana ومعرّفات IPFS CID، في صفحة Base58.
هل تضيف الأداة بايت الإصدار نيابةً عني؟
لا. يُحسب المجموع الاختباري على البايتات التي تدخلها، لذا يجب أن يكون بايت الإصدار جزءًا من مدخلاتك. غيّر «صيغة المدخلات» إلى «ست عشري» واكتبه أولًا، مثل 00 لعنوان Bitcoin.
هل يمكنني فك ترميز مفتاح خاص بصيغة WIF؟
نعم. الصقه في تبويب «فك الترميز» واختر «ست عشري» في «صيغة المخرجات». ستحصل على 80 ثم المفتاح المكوّن من 32 بايت، ثم 01 في النهاية إذا كان المفتاح مضغوطًا. يجري فك الترميز محليًا في متصفحك، ومع ذلك تعامل مع المفاتيح الخاصة الحقيقية بحذر.
هل يمكنني فك ترميز عناوين bc1؟

لا. تستخدم عناوين SegWit الأصلية (Native SegWit) وTaproot ترميز Bech32 أو Bech32m، وهو ترميز مختلف له مجموعه الاختباري الخاص. وفي Bitcoin، لا يُستخدم Base58Check إلا للعناوين القديمة التي تبدأ بـ 1 أو 3 (أو m أو n أو 2 على الشبكة التجريبية).