مشفّر Base58Check
تصبح بيانات عنوان Bitcoin بطول 21 بايتًا السلسلة 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM ذات الأحرف الثلاثة والثلاثين، وفيها مجموع تحقق SHA-256 مزدوج من أربعة بايتات، فيفشل التحقق عند أي حرف منسوخ خطأً بدل أن يعطي بايتات خاطئة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- وضع الحساب
- Encode
- تنسيق الإخراج
- Hex
- النتيجة
- 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
- صيغة Base58Check
- 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
- المجموع الاختباري (سداسي عشري)
- d61967f6
- اسم الأبجدية
- bitcoin
بخلاف Base58 البسيط، يكاد حرف واحد مُبدَّل أن يُفشل دائماً التحقق من المجموع بدل أن يُفك بصمت إلى بايتات خاطئة — وهذا حاسم لعناوين المحافظ ومفاتيح WIF الخاصة وأي سلسلة ينسخها البشر يدوياً. يستخدمه المطوّرون لبناء اختبارات ثابتة، والمعلّمون لإظهار فحوصات السلامة، والسكربتات لذهاب وعودة حتميين دون تثبيت مكتبة Bitcoin كاملة.
لماذا يحتاج Base58 العادي إلى مجموع تحقق
يحوّل Base58 البايتات إلى ثمانية وخمسين حرفًا يصعب الخلط بينها، فلا صفر فيه ولا O أو I كبيران ولا l صغير. هذا يجعل السلسلة سهلة القراءة، لكنه لا يحميها: فالحرف المكتوب خطأً يصنع ببساطة سلسلة صالحة أخرى تُفك إلى بايتات مختلفة. يسد Base58Check هذه الثغرة، إذ يطبّق SHA-256 على بياناتك ثم يطبّقه مرة ثانية على النتيجة، ويضيف أول أربعة بايتات من التجزئة الثانية، ثم يكتب السلسلة كلها بأبجدية Bitcoin Base58. ولهذا تعتمده عناوين Bitcoin من نوع P2PKH ومفاتيح WIF الخاصة وكثير من المفاتيح الموسّعة.
كيف ترمّز وتفك الترميز وتتجنب الأخطاء الشائعة
للترميز، أدخل البيانات بالنظام السداسي عشر، وهو الافتراضي، أو انتقل إلى النص العادي. فالمثال ذو الواحد والعشرين بايتًا 00010966776006953D5567439E5E39F86A0D273BEE يصبح 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM، وهي ثلاثة وثلاثون حرفًا تحمل مجموع التحقق d61967f6. ولفك الترميز، الصق سلسلة Base58Check، فيُعاد حساب مجموع التحقق ويُقارن بالمحفوظ، وأي اختلاف يوقف العملية برسالة واضحة. ومن الأخطاء المعتادة إدخال عدد فردي من الخانات السداسية عشرية، أو نسخ السلسلة ناقصة حرفًا أو زائدة حرفًا، أو توقّع أن تحدد الأداة الشبكة أو نوع العنوان. فهي تتحقق من السلامة فقط ولا تفسّر بايتات الإصدار.
ما يضيفه Base58Check فوق Base58
ذلك التشفير ملائم للبشر لكنه بلا حماية سلامة: يصبح رمز مكتوب خطأ سلسلة صالحة أخرى تُفك إلى بايتات مختلفة. يغلق Base58Check هذه الفجوة. تعطي أربعة بايتات من المجموع في الممارسة فرصة تقارب واحداً من أربعة مليارات لخطأ حرف واحد غير مكتشف، ولهذا تعتمد عناوين P2PKH في Bitcoin وكثير من المفاتيح الموسّعة والأدوات ذات الصلة هذا البناء.
تستهدف هذه الصفحة من يبحث عن مشفّر Base58Check أو مفكّك Base58Check أو محوّل مجموع Bitcoin عبر الإنترنت؛ وليست Base58 بسيطاً بلا مجموع، ولا Base64، ولا مصنّفاً كاملاً لأنواع العناوين يفسّر بايتات الإصدار لكل شبكة.
حالات الاستخدام
اختبارات عينات المحفظة والعناوين
ابنوا عينات CI من حمولات hex معروفة، وأكّدوا أن تشفير Base58Check يطابق السلاسل الذهبية، وارفضوا العناوين المعدَّلة عبر عدم تطابق المجموع.
سلامة النسخ واللصق لأدوات التشغيل
شفّروا تسميات ثنائية مرقّمة بالإصدار حتى يلصق الموظفون سلاسل تفشل بشكل مغلق عند الأخطاء بدل فك بايتات خاطئة بصمت.
الأسئلة الشائعة
أي أبجدية تستخدمها أداة Base58Check هذه؟
أبجدية Bitcoin: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. تستبعد 0 وO وI وl.
ما الفرق بين Base58 وBase58Check؟
Base58Check هو Base58 مضافًا إليه مجموع تحقق من أربعة بايتات مأخوذ من تطبيق SHA-256 مرتين على البيانات. يفك Base58 العادي أي سلسلة صالحة حتى لو كانت مكتوبة خطأً، أما Base58Check فيرفضها إذا فشل التحقق.
ماذا يحدث إذا لم يتطابق مجموع التحقق عند فك الترميز؟
يعيد فك الترميز حساب مجموع التحقق المزدوج من البيانات ويقارنه بالبايتات الأربعة المحفوظة في السلسلة. وإذا اختلفا يتوقف برسالة واضحة بدل أن يسلّمك بايتات خاطئة على الأرجح.
هل أُدخل البيانات بالنظام السداسي عشر أم نصًا عاديًا؟
النظام السداسي عشر هو الافتراضي، ويتطلب عددًا زوجيًا من الخانات، مثل المثال ذي الواحد والعشرين بايتًا في هذه الصفحة. اختر النص العادي لحماية كلمات بترميز UTF-8، وعند فك الترميز يحدد الخيار نفسه طريقة عرض البيانات المستعادة.
ما احتمال أن يمر خطأ كتابي دون أن يكتشفه Base58Check؟
احتمال ضئيل جدًا. تترك بايتات التحقق الأربعة فرصة تقارب واحدًا من أربعة مليارات لأن يمر خطأ في حرف واحد دون اكتشاف، لذا يفشل التحقق دائمًا تقريبًا عند تغيّر حرف بدل أن يُفك إلى بايتات خاطئة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/base58-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "00010966776006953D5567439E5E39F86A0D273BEE"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "00010966776006953D5567439E5E39F86A0D273BEE"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "00010966776006953D5567439E5E39F86A0D273BEE"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
Base58Check هو تنسيق Bitcoin من الثنائي إلى النص الذي يغلّف الحمولة بمجموع تحقق من أربعة بايتات مستمد من SHA-256 المزدوج ثم يشفّر التسلسل كاملاً بأبجدية Base58 الخاصة بـ Bitcoin. يقبل مشفّر Base58Check هذا حمولة hex أو UTF-8 ويعيد سلسلة Base58Check؛ ويعكس المفكّك الخريطة ويعيد حساب SHA256(SHA256(payload)) ويبلغ عن خطأ invalid_input واضح عندما لا يطابق المجموع المخزَّن. المسار حساب حتمي خالص — بلا شبكة ولا بذور عشوائية ولا اعتماد على الساعة — لذا يعيد مشغّل المتصفح المجاني وواجهة API المدفوعة مسبقاً نفس JSON في كل مرة.
ما يضيفه Base58Check فوق Base58
يسقط Base58 البسيط البايتات على ثمانية وخمسين رمزاً غير ملتبس بمعاملة الحمولة كعدد صحيح big-endian والقسمة المتكررة على ثمانية وخمسين، مستخدماً أبجدية Bitcoin التي تحذف الصفر وO الكبيرة وI الكبيرة وl الصغيرة. قبل التشفير يحسب المشفّر SHA-256 للحمولة ثم SHA-256 لذلك الملخص ويُلحق أول أربعة بايتات من التجزئة الخارجية كمجموع تحقق. يُشفَّر المخزن المؤقت المدمج — الحمولة الأصلية مع هذه البايتات الأربع — بـ Base58 تماماً كما في Base58 الخام، بما في ذلك اصطلاح الأصفار البادئة إلى آحاد بادئة. عند الفك يسير المسار عكسياً: فك Base58 يعطي بايتات؛ الأربعة الأخيرة هي المجموع المُدعى؛ ويجب أن يساوي SHA-256 المزدوج للحمولة المتبقية تلك البايتات الأربع وإلا تفشل العملية.
كيف تستدعون الـ API وما تحتويه الاستجابة
مع format utf8 يُشفَّر text كبايتات UTF-8 قبل حساب المجموع. أرسلوا جسماً JSON يتضمن حقل نص إلزامي text (مع مرادفات input وvalue وdata وpayload) وmode اختيارياً encode أو decode (الافتراضي encode) وformat اختيارياً hex أو utf8 (الافتراضي hex). في وضع encode مع format hex يجب أن يكون text سلسلة ست عشرية بطول زوجي تمثل الحمولة بلا مجموع — مثلاً العينة الكلاسيكية ذات واحد وعشرين بايتاً التي تبدأ ببايت الإصدار صفر صفر. تُزال المسافات داخل hex؛ الطول الفردي أو الأرقام غير الست عشرية تعيد invalid_input. يعامل وضع decode النص text كسلسلة Base58Check تحت أبجدية Bitcoin ويتحقق من مجموع SHA-256 المزدوج ويعيد الحمولة ست عشرياً صغيراً عندما يكون format hex، أو كنص UTF-8 عندما يكون format utf8 (الحمولات الثنائية غير الصالحة كـ UTF-8 يجب أن تستخدم hex). عند نجاح encode تتضمن الاستجابة mode وformat وinput وresult وbase58check بنفس السلسلة المشفّرة وpayload_hex وchecksum_hex وثابت alphabet وalphabet_name bitcoin وpayload_bytes وoutput_length ورسالة إنجليزية قصيرة. عند نجاح decode تحصلون أيضاً على checksum_valid بقيمة true وinput_length ورسالة تؤكد التحقق. فشل التحقق — غياب text أو hex سيئ أو mode أو format مجهول أو أحرف Base58 غير صالحة أو حمولات أقصر من أن تحمل مجموعاً أو عدم تطابق المجموع — يعيد invalid_input ولا يُحسب أبداً. التسعير مبلغ ثابت $0.002 لكل طلب ناجح بوحدة item.
نصائح عملية ومتجهات كلاسيكية والفرق عن Base58 البسيط
أبقوا الطلبات تحت حد الأحرف المنشور؛ الحمولات الطويلة جداً تتوسع كأعداد صحيحة كبيرة ويفضّل تقسيمها دون اتصال. استخدموا Base58 البسيط الشقيق عندما تحتاجون تحويل أبجدية فقط بلا مجاميع؛ واستخدموا قدرة Base58Check هذه عندما تهم السلامة. فضّلوا encode عندما تملكون تجزئة مسبوقة بإصدار أو حمولة ثنائية أخرى بصيغة hex وتحتاجون سلسلة آمنة للصق مع سلامة؛ وفضّلوا decode عندما تملكون أصلاً سلسلة شبيهة بعنوان Base58Check ويجب استعادة الحمولة فقط إذا كان المجموع سليماً. اختبارات الدخان ذهاباً وإياباً مباشرة: شفّروا الحمولة hex المعروفة 00010966776006953D5567439E5E39F86A0D273BEE، وأكّدوا النتيجة 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM، ثم فكّوا تلك السلسلة وأكّدوا payload_hex وchecksum_hex d61967f6. اقلبوا عمداً الحرف الأخير من سلسلة صالحة وتأكدوا أن عميلكم يعالج invalid_input برسالة تسمّي مجموعي التحقق رباعيي البايت المستلم والمتوقع. المهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقاً، ما يبقي سكربتات الاستكشاف رخيصة عند اختبار مجاميع سيئة. عند التدريس اعرضوا نفس الحمولة مشفّرة مع المجموع وبدونه حتى يرى المتعلمون لماذا سلاسل أسلوب Bitcoin أطول ولماذا يكاد خطأ حرف واحد أن يفشل دائماً بشكل مغلق بدل فتح المحفظة الخاطئة.
حالات التكامل
تعليم مجاميع تحقق SHA-256 المزدوج
في الصف يُشفَّر متجه Bitcoin كلاسيكي، ويُفحص checksum_hex، ثم يُبدَّل حرف واحد لإظهار invalid_input.
أسئلة تقنية
ما الفرق بين Base58 وBase58Check؟
يسقط Base58 البايتات على أبجدية Bitcoin فقط. أما Base58Check فيُلحق أولاً أربعة بايتات من SHA-256 المزدوج للحمولة ثم يشفّر Base58 الحمولة مع المجموع حتى يتحقق decode من السلامة.
ماذا يحدث إذا لم يطابق مجموع التحقق؟
يعيد decode خطأ invalid_input مع رسالة تتضمن مجموعي التحقق رباعيي البايت المستلم والمتوقع بصيغة hex. المهام الفاشلة لا تُحسب.
هل يجب أن تكون الحمولة hex أم نصاً عادياً؟
الـ format الافتراضي هو hex (أرقام ست عشرية بطول زوجي) بما يوافق أدوات Bitcoin. اضبطوا format على utf8 فقط عندما تكون الحمولة نص UTF-8 حقيقياً.
هل مشفّر Base58Check مجاني؟
أداة المتصفح مجانية وتعمل محلياً. تستعمل استدعاءات API رصيد KIT المدفوع مسبقاً بسعر $0.002 لكل طلب ناجح؛ وفشل invalid_input لا يُحسب أبداً.