مُرمِّز ومُفكِّك Base64url
تصبح عبارة hello world بترميز Base64url هي aGVsbG8gd29ybGQ. هذا هو Base64 الآمن للروابط من القسم 5 في RFC 4648، يستخدم الشرطة والشرطة السفلية بدل علامة الجمع والشرطة المائلة ويحذف حشو علامات المساواة، فتنتقل الرموز في الروابط سليمة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- hello world
- وضع الحساب
- Encode
- النتيجة
- aGVsbG8gd29ybGQ
- الترميز
- base64url
- بايتات الإدخال
- 11
- بايتات الإخراج
- 15
يحوّل مُرمِّز Base64url هذا نصًّا عاديًّا إلى Base64 آمن للروابط ويفكّك سلاسل Base64url عائدًا إلى نص UTF-8 باستخدام أبجدية RFC 4648 القسم 5. المحرك حتمي تمامًا: الإدخال والوضع نفسهما يُنتجان دائمًا النتيجة نفسها، بلا نداءات شبكة، ولا أملاح عشوائية، ولا اختصارات مرتبطة بالتاريخ. من الفحوص الشائعة: ترميز hello world إلى aGVsbG8gd29ybGQ وفكّ تلك السلسلة عائدًا إلى العبارة الأصلية.
ما Base64url وماذا تُرجع هذه الأداة
Base64url هو النسخة الآمنة للروابط من Base64 الكلاسيكي المُعرَّفة في RFC 4648 القسم 5. يُطابِق كلا المخطّطَين كل ثلاثة بايتات إدخال بأربعة رموز من ستّة بتّات مأخوذة من أبجدية أربعة وستّين حرفًا، لكن Base64url يستبدل رمزَي الزائد والشرطة المائلة بالناقص والشرطة السفلية ويحذف حشو علامة يساوي التي يُلحقها Base64 القياسي حين لا يكون طول البايت مضاعفًا لثلاثة. هذا التغيير الصغير في الأبجدية هو سبب انتقال الرموز المميّزة للهوية، ومعاملات حالة OAuth، وأجزاء ملفّات تعريف الارتباط الموقَّعة، وملخّصات المحتوى بنظافة داخل الروابط وسمات HTML دون ترميز النسبة المئوية.
تستخدم هذه الصفحة دائمًا تلك الأبجدية غير المحشوّة الآمنة للروابط: يرمّز وضع encode نصّك ب UTF-8، ويعبّئ البايتات، ويُرجع فقط A حتى Z، وa حتى z، وصفر حتى تسعة، والناقص، والشرطة السفلية؛ يعكس وضع decode العملية ويرفض أحرف Base64 القياسية، والمسافات البيضاء، والكمّيات النهائية غير المكتملة. إن احتجت Base64 قياسيًّا محشوًّا بالزائد والشرطة المائلة، فاستخدم نقطة نهاية Base64 قياسية مخصّصة؛ هذه الصفحة مخصّصة فقط لعقد بلا حشو آمن للروابط الذي تتوقّعه JWT وكثير من الواجهات البرمجية الحديثة بالفعل.
أين يفيد Base64url في الرموز المميّزة والواجهات البرمجية وبيانات الاختبار
يصادف المطوّرون Base64url حين يفحصون أجزاء JWT، أو يصوغون قيم حالة ورقم عشوائي OAuth، أو يضمّنون مطالبات صغيرة آمنة ثنائيًّا في معاملات الاستعلام، أو يخزّنون معرِّفات مبهمة في ملفّات إعداد نصّية فقط. تفكّك فرق الواجهة الأمامية الرموز المميّزة الآمنة للروابط أثناء تصحيح التكامل دون لصق البيانات في نصوص برمجية مرتجلة تعيد بالخطأ إدخال الزائد والشرطة المائلة. تُرمِّز الخدمات الخلفية مقتطفات إعداد أو ملخّصات ثنائية قصيرة قبل وضعها في روابط إعادة توجيه حيث سيتعطّل Base64 القياسي.
يولّد مهندسو الجودة أزواج ترميز وفكّ ترميز حتمية لاختبارات العقد كي لا تتحوّل بصمت وسيطة تدّعي دعم Base64url إلى أبجديات أخرى. يستخدم المعلّمون الأداة نفسها عند تدريس الفرق بين Base64 وفق MIME والنسخة الآمنة للروابط التي تعتمدها أكوام المصادقة الحديثة معيارًا. اقرنها بمساعدات JWT أو التجزئة حين تحتاج خطوات تشفيرية ذات صلة، وبنقاط ترميز أخرى عند بناء مختبر صغير من أدوات نصّية حتمية مجانية.
حالات الاستخدام
ممارسة رموز JWT وOAuth المميّزة
رمِّز أو فكّك الأجزاء الآمنة للروابط المستخدَمة في JWT وحالة OAuth وقيم الرقم العشوائي دون حشو Base64 القياسي أو رموز +/.
حمولات آمنة لسلاسل الاستعلام
حوّل نصًّا قصيرًا إلى Base64url كي ينجو عبر معاملات الاستعلام وأجزاء المسار دون مفاجآت ترميز النسبة المئوية.
بيانات تكامل مستمر حتمية
أنشئ سلاسل Base64url قابلة لإعادة الإنتاج لاختبارات الوحدة والملفّات الثابتة وفحوص العقد عبر الخدمات.
الأسئلة الشائعة
كيف يختلف Base64url عن Base64 القياسي؟
يستخدم Base64url - و_ بدل + و/، ولا تُصدر هذه الأداة أو تقبل حشو = أبدًا. يُرفَض Base64 القياسي ب + / = عند فكّ الترميز.
ماذا يحدث إذا لصقت Base64 قياسيًّا ب + أو =؟
استبدل + ب -، و/ ب _، وأزل الحشو، أو استخدم أداة Base64 قياسية بدلًا من ذلك.
هل النتيجة حتمية؟
نعم. النص والوضع نفسهما يُنتجان دائمًا النتيجة نفسها بلا شبكة أو عشوائية أو سلوك مرتبط بالتاريخ.
لماذا لا تنتهي نتيجة Base64url بعلامات مساواة؟
لأن Base64url يحذف الحشو الذي يضيفه Base64 القياسي، فتصبح عبارة hello world هي aGVsbG8gd29ybGQ دون أي إضافة. وعند فك الترميز يُرفض الطول الذي يترك حرفًا واحدًا زائدًا في مجموعة من أربعة، لأنه لا يكوّن بايتات كاملة.
هل يمكنني فك جزء من رمز JWT بهذه الأداة؟
نعم. أجزاء JWT مكتوبة بترميز Base64url، فالصق جزءًا واحدًا في كل مرة دون النقاط الفاصلة، ثم اختر فك الترميز لقراءة النص. وتُرفض النقطة وعلامة الجمع لأنهما ليستا من الأبجدية.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/base64url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world"}'const res = await fetch("https://api.kit.forhosting.com/enc/base64url", {
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/base64url",
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/base64url", 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/base64url", 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.base64url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
بخلاف Base64 الكلاسيكي، لا يحتوي المخرج أبدًا على رمزَي زائد أو شرطة مائلة ولا ينتهي أبدًا بحشو علامة يساوي، فتنجو الرموز المميّزة (tokens) عبر سلاسل الاستعلام وأجزاء المسار وJSON دون هروب إضافي. اختر encode لتحويل رسالة، أو مجموعة مطالبات، أو سلسلة إعداد إلى حمولة Base64url مُحكَمة، أو اختر decode لاستعادة النص الأصلي من رمز مميّز آمن للروابط تملكه بالفعل. استخدمها مجانًا في المتصفح لممارسة JWT، وقيم حالة OAuth، وبيانات اختبار الواجهة البرمجية، أو استدعِ واجهة برمجة التطبيقات مقابل $0.002 لكل طلب ناجح حين تحتاج خطوط الأنابيب تحويلات Base64url ثابتة قابلة لإعادة الإنتاج في التكامل المستمر والخدمات الخلفية.
ما Base64url وماذا تُرجع هذه الأداة
تتضمّن استجابة JSON result للسلسلة المحوَّلة، وmode تعكس encode أو decode، وencoding مضبوطة على base64url، وinput_bytes وoutput_bytes كي تستطيع تأكيد الأحجام في الاختبارات. لا يوجد مسار تدفّق ولا رجوع صامت إلى الأبجدية الكلاسيكية: فإما أن تكون السلسلة نص Base64url صالحًا، أو يفشل الطلب برمز invalid_input.
كيف يُقرأ النص والوضع وكيف تبقى النتائج قابلة لإعادة الإنتاج
يقبل encode أي سلسلة يونيكود، ويحوّلها بمُرمِّز النصّ المنصّة إلى بايتات UTF-8، ثم يُصدر Base64url بلا حشو. يتطلّب decode سلسلة Base64url خالصة: يُرفَض باقي الطول على أربعة يساوي واحدًا لأنه لا يمثّل عددًا صحيحًا من البايتات، وأي حرف خارج الأبجدية الآمنة للروابط يفشل برسالة واضحة تشير إلى الزائد أو الشرطة المائلة أو علامة يساوي حين تظهر رموز Base64 القياسية تلك. بعد استعادة البايتات، يضمن فكّ ترميز UTF-8 فادح ألّا تصبح الفوضى الثنائية نصًّا مشوَّهًا. حقل الحمولة المفضّل هو text، بأسماء بديلة input وvalue وs كي تستطيع النماذج وسلاسل الاستعلام وعملاء SDK إعادة استخدام العقد نفسه دون إعادة تسمية الأعمدة. يفترض mode القيمة encode ويقبل decode صراحةً؛ الأسماء البديلة op وdirection وaction تُطابَق مع المفتاح نفسه للنصوص البرمجية التي تستخدم تلك الأسماء بالفعل. اقرن التشغيل المجاني في المتصفح بالواجهة البرمجية المدفوعة حين تحتاج النتيجة الرياضية نفسها داخل خط أنابيب آلي دون إعادة تطبيق جداول Base64url بنفسك. تُعيد المدخلات غير الصالحة invalid_input ولا تُحتسب رسوم عليها، ما يبقي التحقّق رخيصًا بينما تظل التحويلات الناجحة بسعر عنصر ثابت.
أين يفيد Base64url في الرموز المميّزة والواجهات البرمجية وبيانات الاختبار
تعمل هذه الصفحة كليًّا داخل متصفحك؛ وعبر الواجهة البرمجية يكلّف كل استعلام ناجح $0.002، ولا تُحتسب رسوم على التحقّق الفاشل، ولا يُحفَظ شيء بعد إعادة الاستجابة. هذا الفصل — استكشاف تفاعلي مجاني وواجهة برمجية مدفوعة مطابقة له — يواكب بقية كتالوج الفئة A في KIT، ويتيح لك الانتقال من عرض صفّي إلى خط أنابيب آلي دون أن تتغيّر النتيجة المُرمَّزة.
أسئلة تقنية
كم يكلّف مُرمِّز Base64url؟
هو مجاني في متصفحك على هذه الصفحة. عبر الواجهة البرمجية يكلّف الطلب الناجح $0.002؛ ولا تُحتسب رسوم على المدخلات غير الصالحة.
ما الأوضاع المدعومة؟
mode=encode (الافتراضي) يحوّل النص العادي إلى Base64url. mode=decode يحوّل سلسلة Base64url عائدًا إلى نص UTF-8.