مشفّر Base58 وفكّاكه
تصبح عبارة Hello World بترميز Base58 هي JxF12TrwUP45BMd، بأبجدية Bitcoin ذات الأحرف الثمانية والخمسين الخالية من الصفر وO وI الكبيرين وl الصغير، فتبقى الرموز واضحة على الورق والشاشة. ويفك الترميز أيضًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello World
- وضع الحساب
- Encode
- النتيجة
- JxF12TrwUP45BMd
- الإدخال
- Hello World
- ناتج Base58
- JxF12TrwUP45BMd
- اسم الأبجدية
- bitcoin
يحوّل مشفّر Base58 نص UTF-8 العادي إلى سلسلة مدمجة لا تستخدم سوى ثمانية وخمسين حرفًا غير ملتبس، ويعكس فكّاك Base58 ذلك التعيين فتستعيد النص الأصلي. تستخدم هذه الأداة أبجدية Bitcoin: الأرقام والحروف دون الصفر والحرف O الكبير والحرف I الكبير والحرف l الصغير، وهي الرموز الأربعة التي يلتبس بعضها على الناس أكثر عند قراءة الملاحظات المخطوطة ومطبوعات QR وعناوين المحافظ. يفحص المطورون السلاسل الشبيهة بالعناوين، ويعرض المعلمون أسسًا بديلة، وتحتاج النصوص البرمجية إلى رحلات ذهاب وعودة حتمية دون تثبيت مكتبة تشفير.
ما هي أبجدية Base58 الخاصة بـ Bitcoin ولماذا تغيب تلك الأحرف الأربعة
Base58 ترميز من الثنائي إلى النص يعيّن تسلسلًا اعتباطيًا من البايتات على أبجدية من ثمانية وخمسين رمزًا. وعلى خلاف Base64، يسقط الأحرف التي يصعب تمييزها في الطباعة والنطق: الرقم صفر والحرف الكبير O والحرف الكبير I والحرف الصغير l. وقد روّج مشروع Bitcoin ترتيبًا محددًا للرموز الباقية — من 1 إلى 9، ثم A-Z دون I وO، ثم a-z دون l — وهذا الترتيب هو ما تستخدمه المحافظ وكثير من مستكشفات البلوكتشين وهذه الأداة.
يسلك التشفير بايتات الإدخال بوصفها عددًا صحيحًا كبير الترتيب بالأساس مئتين وستة وخمسين، فيقسمها تكرارًا على ثمانية وخمسين ويعيّن كل باقٍ إلى الأبجدية؛ وتتحول البايتات الصفرية البادئة إلى آحاد بادئة في الإخراج، وهو الاصطلاح نفسه الذي تتبعه عناوين Bitcoin. ويعكس فك التشفير الخريطة: يصبح كل حرف رقمًا من صفر إلى سبعة وخمسين، ويُعاد بناء العدد الكبير، وتُستعاد مصفوفة البايتات بقاعدة الآحاد البادئة ذاتها.
ولأن الأبجدية بلا حرف حشو، فإن الطول وحده لا يستلزم حجم كتلة ثابتًا كما في Base64؛ ومع ذلك تنجح الرحلات ذهابًا وعودة ما دام الطرفان متفقين على الأبجدية واصطلاح الصفر البادئ. وتستهدف هذه الصفحة الباحثين عن مشفّر Base58 أو فكّاك Base58 أو محوّل أبجدية Bitcoin عبر الإنترنت؛ فهي ليست Base64 ولا Base32 ولا مدقّق عناوين Bitcoin كاملًا ببايتات الإصدار ومجاميع التحقق.
نصائح عملية وحدود والفرق عن Base64
فضّل encode حين تبدأ من نص مقروء للبشر أو حمولات ثنائية قصيرة كنص تريد لصقها دون رموز ملتبسة؛ وفضّل decode حين تكون بحوزتك سلسلة Base58 من محفظة أو تسمية QR أو ملف تجهيزات. وفحوص الذهاب والعودة أسرع اختبار دخاني: شفّر عبارة معروفة مثل Hello World، وتأكد من النتيجة الكلاسيكية JxF12TrwUP45BMd، ثم فكّك تلك السلسلة وتأكد من استعادة العبارة الأصلية بايتًا بايتًا. وأبقِ الحمولات دون حد الأحرف المنشور؛ فالسلاسل الطويلة جدًا تتضخم أعدادًا كبيرة ويُفضَّل تقسيمها أو معالجتها دون اتصال.
وهذه الأداة ليست محلّل عناوين Bitcoin: فهي لا تزيل بادئة الإصدار ولا تعيد حساب مجموع تحقق double-SHA256 ولا تميّز mainnet من testnet. وليست Base64 ولا Base64URL أيضًا — فتلك الأبجديات تتضمن الزائد والشرطة المائلة وحشو اليساوي وتحتفظ بالصفر وO الكبير. فضّل Base58 حين تهمّ سلامة النسخ البشري أكثر من الكثافة، وفضّل Base64 حين تحتاج إلى أقصى عدد بتات لكل حرف ونقل آلي محض.
وعند التعليم، اعرض الجملة ذاتها مشفّرة بـ Base58 وBase64 جنبًا إلى جنب كي يرى المتعلمون لماذا تبدو أبجدية Bitcoin مختلفة ولماذا تقل أخطاء النسخ واللصق حين تختفي الرموز الأربعة الملتبسة.
حالات الاستخدام
رحلات ذهاب وعودة للمحافظ والتجهيزات في الاختبارات
ولّد سلاسل Base58 معروفة من نصوص التجهيزات وتأكد من أن فك التشفير يستعيد بايتات UTF-8 ذاتها في التكامل المستمر دون اعتمادية تشفير.
رموز قصيرة آمنة للبشر للطباعة وQR
شفّر التسميات القصيرة كي تتجنب الرموز المطبوعة التباس 0/O/I/l عندما يكتبها الموظفون من الورق أو كاميرات الهواتف.
تعليم الأسس البديلة وأبجدية Bitcoin
تشفّر القاعات والورش Hello World، وتفحص الأبجدية، ثم تُدخل أحرفًا غير صالحة لإظهار صرامة التحقق.
الأسئلة الشائعة
أي أبجدية يستخدمها مشفّر Base58 هذا؟
أبجدية Bitcoin: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. وهي تستبعد 0 وO وI وl.
هل Base58 هو نفسه Base64؟
لا. يستخدم Base64 أربعة وستين رمزًا منها + و/ وحشو =، ويحتفظ بـ 0 وO. أما Base58 فيقلّ الرموز الملتبسة وهو شائع في السلاسل على نمط Bitcoin.
هل تتحقق هذه الأداة من عناوين Bitcoin الكاملة؟
لا. هي فقط تشفّر نص UTF-8 الخام وتفكّ تشفيره بأبجدية Base58 من Bitcoin. ولا تفحص بايتات الإصدار ولا مجاميع تحقق double-SHA256.
لماذا تُرفض سلسلة Base58 عند فك ترميزها؟
لأنها تحتوي على حرف خارج أبجدية Bitcoin، مثل الصفر أو O أو I الكبيرين أو l الصغير أو علامة ترقيم أو مسافة. يتوقف فك الترميز برسالة واضحة بدل أن يحوّلها بصمت إلى نص مختلف.
لماذا تبدأ بعض سلاسل Base58 بالرقم 1؟
لأن البايتات الصفرية في بداية البيانات تصبح آحادًا في بداية النتيجة، وهي القاعدة نفسها في عناوين Bitcoin. وعند فك الترميز تعود هذه الآحاد بايتات صفرية، فتُستعاد البايتات الأصلية كما هي.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/base58 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello World"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
اختر encode لتحويل النص الصريح إلى Base58، أو decode لاستعادة UTF-8 من حمولة Base58؛ فأحرف الأبجدية غير الصالحة تُعيد خطأ invalid_input واضحًا بدل فساد صامت. والمسار عملية حسابية حتمية نقية على بايتات UTF-8 — بلا شبكة وبلا بذور عشوائية وبلا اعتماد على الساعة — فتُعيد الأداة المجانية في المتصفح وخدمة API المدفوعة مسبقًا JSON ذاته في كل مرة.
ما هي أبجدية Base58 الخاصة بـ Bitcoin ولماذا تغيب تلك الأحرف الأربعة
وحين يظهر حرف خارج الأبجدية — صفر أو O أو I أو l أو علامة ترقيم أو فراغ — يجب أن يفشل المفكّك بصوت عالٍ، إذ إن الاستبدال الصامت سيبتدع حمولة مختلفة وهو أسوأ من الخطأ الصريح بالنسبة إلى المحافظ ومجاميع التحقق والاختبارات الآلية.
كيفية استدعاء API وماذا يحتوي الرد
الوضع الافتراضي هو encode: تتحول بايتات UTF-8 للنص إلى سلسلة Base58 بأبجدية Bitcoin. أرسل جسم JSON يتضمن حقل السلسلة الإلزامي text (مع الأسماء البديلة input وvalue وdata) وحقل mode اختياريًا قيمته encode أو decode. أما وضع decode فيعامل text بوصفه حمولة Base58 ويعيد سلسلة UTF-8 المستعادة. وطول الإدخال محدود بمئة ألف حرف كي لا يستنزف طلب واحد ذاكرة Worker عند تضخّم الأعداد الكبيرة المَرَضي. وعند نجاح encode يتضمن الرد mode وinput وresult وbase58 بالسلسلة المشفّرة ذاتها، وalphabet بالثابت الكامل ذي الثمانية والخمسين حرفًا، وalphabet_name مضبوطًا على bitcoin، وinput_bytes لعدد بايتات UTF-8، وoutput_length لعدد أحرف التشفير، ورسالة إنجليزية قصيرة. وعند نجاح decode يتضمن الرد mode وinput وresult وtext بالسلسلة المفكوكة، وحقول الأبجدية ذاتها، وinput_length وoutput_bytes ورسالة مطابقة. والتحقق الفاشل — غياب text أو كونه غير نصي أو تجاوز الحجم أو mode مجهول أو حرف Base58 غير صالح أو بايتات مفكوكة ليست UTF-8 صالحًا — يعيد invalid_input ولا يُرسَم أبدًا. والتسعيرة ثابتة $0.002 لكل طلب ناجح بوحدة item وسعر هامشي صفري للوحدة.
نصائح عملية وحدود والفرق عن Base64
وأدرج عمدًا حرفًا محظورًا — الرقم صفر أو O الكبير أو I الكبير أو l الصغير — في طلب decode للتأكد من أن عميلك يتعامل مع invalid_input ومع رسالة الخطأ التي تذكر الفهرس والرموز المستبعَدة. والمهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقًا، مما يُبقي النصوص الاستكشافية رخيصة عند اختبار أحرف الأبجدية غير الصالحة.
أسئلة تقنية
ماذا يحدث إذا فككّتُ سلسلة تحتوي 0 أو O أو I أو l؟
تعيد API خطأ invalid_input، وتذكر الحرف السيئ وفهرسه، وتذكّرك بأن Base58 من Bitcoin يستبعد تلك الرموز الأربعة. والمهام الفاشلة لا تُرسَم.
هل مشفّر Base58 مجاني؟
أداة المتصفح مجانية وتعمل محليًا. وتستخدم طلبات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل طلب ناجح؛ وإخفاقات invalid_input لا تُرسَم أبدًا.