مُرمِّز Crockford Base32
تصبح كلمة Hello بترميز Crockford Base32 هي 91JPRV3F، بأبجدية تخلو من I وL وO وU، فتصمد الأرقام التسلسلية ورموز الدعم أمام القراءة عبر الهاتف وإعادة الكتابة يدويًا. ويكشف رمز تحقق اختياري الحرف المكتوب خطأً. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello
- وضع الحساب
- Encode
- النتيجة
- 91JPRV3F
- الطول
- 8
- بايتات المُدخَل
- 5
- الأبجدية
- Crockford
Crockford Base32 أبجدية ترميز عملية مخصّصة لمن يقرأ المعرّفات ويكتبها يدويًا. تستبعد الرموز الأكثر إثارةً للخلط—I وL وO وU—حتى يصمد الرقم التسلسلي أو الرمز القصير أو رمز الدعم أمام عملاء البريد والملاحظات الورقية والقراءة عبر الهاتف. يحوّل مُرمِّز ومُفكِّك Crockford Base32 هذا نص UTF-8 إلى تلك الأبجدية وبالعكس، ويقبل التسامحات البشرية المعتادة (الأحرف الصغيرة والشرطات وO كصفر وI وL كواحد)، ويمكنه إلحاق رمز التحقق الاختياري بمعيار modulo-37 من Crockford أو التحقق منه عند الحاجة لاكتشاف أخطاء النسخ.
ما هو Crockford Base32 وكيف يختلف عن Base32 في RFC 4648
Base32 القياسي (RFC 4648) يستخدم A–Z و2–7 مع حشو بعلامات التساوي. تلك الأبجدية مناسبة لتنسيقات الشبكة وMIME، لكنها مربكة للبشر: الحرف I الكبير يشبه الواحد، وO الكبير يشبه الصفر، وU يعكّر الرموز المنطوقة. أبجدية Douglas Crockford Base32 تحتفظ باثنين وثلاثين رمزًا—أرقام من صفر إلى تسعة مع A إلى Z بعد حذف I وL وO وU—حتى يسهل طباعة كل رمز متبقٍّ وقراءته بصوت عالٍ وكتابته.
فك الترميز متسامح عمدًا: يجوز فصل المجموعات بشرطات للوضوح، ولا تهم حالة الأحرف، ويُعامل O كرقم صفر، وI وL كرقم واحد. لا يوجد حشو بعلامات التساوي؛ تُصدَر مجموعات الخمس بتات الناقصة في النهاية كرمز أخير عند الترميز، بما يتوافق مع تنفيذات Crockford الشائعة للسلاسل القصيرة. رمز تحقق اختياري من مجموعة سبعة وثلاثين رمزًا (اثنان وثلاثون لبيانات مع نجمة وتيلدا ودولار وتساوي وU) هو باقي قيمة سلسلة الرموز modulo سبعة وثلاثين.
ألحِقوه عندما ستُعاد كتابة الملصقات يدويًا؛ وتحققوا منه عند فك الترميز إذا كان check يساوي true.
أين يُثبت مُرمِّز Crockford Base32 قيمته العملية
تستخدم فرق المنتج والعمليات Crockford Base32 لمعرّفات عامة قصيرة يجب أن يقرأها الدعم هاتفيًا دون تهجئة I مقابل واحد لكل حرف. المستودعات وملصقات الأصول تستفيد من مجموعات مفصولة بشرطات ورمز تحقق اختياري يلتقط رقمًا خاطئًا قبل اختيار موقع خاطئ. المطوّرون الذين يبنون رموزًا مضغوطة بأسلوب ULID أو مخصّصة يريدون مُرمِّزًا بأبجدية Crockford المتوقعة لا مجموعة 2–7 في RFC 4648، ومُفكِّكًا يقبل لصقًا فوضويًا من الدردشة أو PDF.
تمارين الصف والمقابلات عن الترميزات المقروءة تحتاج أوراكلًا حتميًا يرفض U في البيانات ويشرح عدم تطابق التحقق بدل إرجاع نفايات. حافظوا على حمولات معتدلة وثبّتوا سلاسل result في الاختبارات الآلية لتحصلوا على Crockford Base32 قابل للتكرار للملصقات ورموز الدعم وعُمّال الحافة دون إنشاء مكتبة أبجدية خاصة بكم.
حالات الاستخدام
رموز دعم وتذاكر مقروءة
رمّزوا مراجع قصيرة ليقرأها الوكلاء بصوت عالٍ بلا خلط I/L/O؛ وفكّوا لصقات تتضمن شرطات أو أحرفًا صغيرة.
مسارات الرموز والمعرّفات
أنشئوا وتحققوا من حمولات Crockford Base32 في السكربتات والعُمّال بنفس المنطق الخالص لأداة المتصفح المجانية.
الأسئلة الشائعة
ما الأبجدية التي يستخدمها Crockford Base32؟
الأرقام 0–9 والحروف A–Z باستثناء I وL وO وU (اثنان وثلاثون رمزًا). يقبل فك الترميز الأحرف الصغيرة والشرطات وO كـ 0 وI/L كـ 1.
كيف يختلف عن Base32 في RFC 4648؟
RFC 4648 يستخدم A–Z و2–7 مع حشو '='. Crockford يحذف الحروف الملتبسة، يستخدم 0–9 ومجموعة حروف مختلفة، يتخطى الحشو ويوفّر رمز تحقق اختياريًا.
ماذا يحدث إذا أرسلت حرفًا غير صالح؟
U غير صالح في أبجدية البيانات (قد يظهر فقط كرمز تحقق).
ما فائدة رمز التحقق في Crockford؟
هو حرف إضافي يساوي باقي قسمة قيمة الرمز على 37، ويُختار من رموز البيانات الاثنين والثلاثين مضافًا إليها * و~ و$ و= وU. أضفه إلى الملصقات التي سيعيد أحد كتابتها، فعند فك الترميز مع تفعيل التحقق يفشل الفك إذا لم يطابق الحرف الأخير.
هل يمكنني فك رمز يحتوي على شرطات أو أحرف صغيرة؟
نعم. تُتجاهل الشرطات بين المجموعات، ولا يهم حجم الأحرف، ويُقرأ الحرف O صفرًا والحرفان I وL واحدًا، فيُفك النص الملصوق من محادثة أو ملف PDF دون مشكلة. أما الحرف U فيُرفض داخل البيانات.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/base32-crockford \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base32-crockford", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base32-crockford",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base32-crockford", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base32-crockford", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base32_crockford",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
المنطق التحليلي الخالص نفسه يشغّل الأداة المجانية في المتصفح ومسار API المدفوع، فلا تختلف سكربتات الدراسة وملصقات المخزون وعُمّال الإنتاج على حرف واحد. تفشل المدخلات التالفة بـ invalid_input ورسالة واضحة تسمّي الرمز الخاطئ أو عدم تطابق التحقق بدل الفساد الصامت.
ما هو Crockford Base32 وكيف يختلف عن Base32 في RFC 4648
تنفّذ هذه القدرة ذلك العقد الموجّه للإنسان على نص UTF-8 بتعبئة بتات حتمية، فنفس المدخل ينتج دائمًا نفس سلسلة Crockford، ويعيد فك الترميز العكسي البايتات الأصلية عندما تكون الحمولة UTF-8 صالحًا.
عقد الإدخال وشكل الاستجابة وسلوك الأخطاء
النص الفارغ يُرمَّز إلى نتيجة فارغة. فشل التحقق لا يُفوتر. اقرنوا encode ثم decode في اختباراتكم مع check true وfalse حتى تثبّت goldens الأبجدية والبدائل وحساب التحقق عبر بيئات التشغيل. أرسلوا جسم JSON بطريقة POST مع الحقل النصي الإلزامي text والحقلين الاختياريين mode وcheck. يكون mode إما encode أو decode والافتراضي encode؛ وتُقبل الأسماء البديلة op وoperation وdirection. check قيمة منطقية افتراضها false؛ وعند true في الترميز تُلحِق API رمز تحقق Crockford وتعيده كـ check_symbol، وعند true في فك الترميز يجب أن يطابق الحرف الأخير باقي modulo سبعة وثلاثين وإلا تفشل المهمة بـ invalid_input. عند نجاح encode يتضمن الجسم mode وtext الأصلي وresult (سلسلة Crockford) وlength وinput_bytes وalphabet Crockford وملخص charset وعلم check وتسمية standard. عند نجاح decode تحصلون على mode وtext وresult (سلسلة UTF-8) وlength وoutput_bytes ونفس بيانات الأبجدية، وإذا طُلب check فـ check_verified مع check_symbol الذي نجح. فك الترميز بلا check يعامل السلسلة كلها كبيانات بعد إزالة الشرطات وتطبيق بدائل O/I/L؛ وأي حرف خارج أبجدية البيانات—بما في ذلك U منفرد في الحمولة—يثير invalid_input مع الموضع والحرف. الطول محدود حتى تفشل اللصقات المفرطة مبكرًا. mode غير صالح أو check غير منطقي يفشلان أيضًا بـ invalid_input.
أين يُثبت مُرمِّز Crockford Base32 قيمته العملية
مواقع المحتوى التي تتنافس على crockford base32 encoder يمكنها تقديم ودجة متصفح مجانية تتطابق وحدتها الخالصة بايتًا بايت مع مسار API. ولأن التنفيذ parse خالص من المستوى A، كل استدعاء ناجح يكلّف السعر الأساسي المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة.
حالات التكامل
ملصقات أصول برمز تحقق اختياري
اطبعوا ملصقات Crockford مع check=true حتى يفشل التحقق عند خطأ كتابة واحد قبل نقل المخزون إلى المكان الخطأ.
أسئلة تقنية
ماذا يفعل خيار check؟
عند الترميز، check=true يُلحِق رمز تحقق modulo-37 من مجموعة السبعة وثلاثين رمزًا. عند فك الترميز، check=true يفرض ذلك الرمز النهائي ويرفض عدم التطابق.
كم يكلّف مُرمِّز Crockford Base32؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل استدعاء ناجح؛ المدخلات غير الصالحة لا تُفوتر.