مشفّر basE91
يضع basE91 النص في 91 حرفًا قابلًا للطباعة، بإحكام يفوق Base64 ودون حشو: تصبح عبارة Hello, world! بأبجدية Joachim Henke الأصلية هي >OwJh>}A"=r@@Y?F، وتعود أي سلسلة basE91 نصًا بترميز UTF-8. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello, world!
- النتيجة
- >OwJh>}A"=r@@Y?F
- وضع الحساب
- Encode
- المتغيّر
- base91
- البايتات
- 13
التشفير حتمي: UTF-8 ثم حسابات طابور البتات basE91؛ والفك يزيل الفراغات، ويُسقط كل رمز عبر الجدول العكسي، ويرفض الرموز غير الشرعية بدل اختراع بدائل صامتة.
تشفير نص UTF-8 إلى basE91
يفسّر المحرك السلسلة كنص Unicode، ويُسلسلها إلى بايتات UTF-8، ثم يغذي تلك البايتات إلى طابور بتات basE91 لـ Joachim Henke: يساهم كل بايت إدخال بثمانية بتات، ومتى تجاوز المخزن ثلاثة عشر بتًا يُصدِر المشفّر زوجًا من حرفين من أبجدية الواحد وتسعين رمزًا. عندما تكون قيمة نافذة الثلاثة عشر بتًا ثمانية وثمانين على الأكثر، يستهلك الخوارزم بدل ذلك أربعة عشر بتًا قبل إصدار الزوج، وهي حيلة العرض المتغير التي تجعل basE91 أكثر كثافة من توسعة Base64 الثابتة.
يُفرَّغ الطابور الجزئي النهائي كرمز أو رمزين متبقيين حتى يستعيد جانب الفك طول البايتات الدقيق دون محارف حشو مثل علامات التساوي. السلاسل الفارغة صالحة وتُشفَّر إلى نتيجة فارغة بصفر بايتات. النص متعدد اللغات والرموز التعبيرية وعلامات الترقيم تكمل الذهاب والعودة لأن المسار UTF-8 كامل وليس اختصار Latin-1.
المدخلات المتطابقة تنتج دائمًا مخرجات متطابقة لأن الخوارزم حساب خالص بلا شبكة ولا ملح عشوائي ولا ساعة جدار. استخدم هذا المسار كلما احتجت تمثيلًا نصيًا آمنًا أكثر كثافة من Base64 لمقاطع إعداد قصيرة أو عينات توثيق أو قنوات basE91 قديمة.
فك basE91 إلى نص ومعالجة المحارف غير الصالحة
عيّن mode إلى decode وضع سلسلة basE91 في text. تُزال الفراغات البادئة واللاحقة والداخلية — بما في ذلك المسافات وعلامات الجدولة والأسطر الجديدة — حتى تظل اللصق متعدد الأسطر يعمل. الأبجدية صارمة: تُقبل فقط الرموز الواحد وتسعون التي عرّفها Joachim Henke (حروف كبيرة وصغيرة وأرقام ومجموعة ثابتة من ترقيم قابل للطباعة يستبعد المسافة والشرطة والعلامة المفردة والشرطة المائلة العكسية).
يعيد المفكّك بناء طابور البتات بإقران الرموز: الأول من كل زوج هو الرقم المنخفض modulo واحد وتسعين والثاني يُقاس بواحد وتسعين؛ تُحرَّر ثلاثة عشر أو أربعة عشر بتًا لكل زوج حسب نفس عتبة الثمانية والثمانين المستخدمة في التشفير، ثم تُصدَر بايتات كاملة حتى يتبقى أقل من ثمانية بتات. يُعامل الرمز النهائي غير المقترن كتفريغ قصير للطابور المتبقي. يعيد الفك الناجح result كالسلسلة المستعادة وmode decode وvariant base91 وbytes كطول UTF-8 المفكوك.
فضّل هذه القدرة عندما تكون نية البحث حرفيًا مشفّر base91 أو مفكّك basE91 أو تحويل base91 للمحتوى المقروء؛ تبقى Base64 وBase58 وAscii85 أدوات منفصلة بصفحاتها الخاصة.
متى يناسبك basE91 وما حدوده
استدعِ مشفّر basE91 المجاني في المتصفح لعروض الصف ودفاتر الدعم وفحص الرموز والتحويلات لمرة واحدة دون تثبيت حزم أصلية أو برمجة طابور بتات مخصص بنفسك. سير عمل نموذجي يشفّر قيمة إعداد قصيرة للتخزين في تذكرة نص فقط، ويرسلها بالبريد أو الدردشة، ثم يفكها على الخدمة المستقبِلة بـ mode decode ويتحقق من تطابق bytes مع الطول الأصلي. سير آخر يتحقق من أن عينة توثيق ما زالت تُفك إلى النص الواضح الموثّق قبل إصدار، بتثبيت تجهيزات encode وdecode حتى يلتقط التكامل المستمر انحراف الأبجدية العرضي.
اقرن هذه النقطة بأداة Base64 عندما يتكلم نظام شريك Base64 فقط، لكن أبقِ الخطوات على صفحات منفصلة ليتوافق كل منها مع نية بحث واحدة — كثافة basE91 مقابل انتشار Base64. يتبع النص المصدر قواعد الاحتفاظ نفسها لعناصر parse الأخرى في KIT، والنتائج آمنة للتثبيت في تجهيزات التكامل المستمر لأن الخوارزم حتمي بالكامل عبر العزلات.
حالات الاستخدام
توافق basE91 القديم
شفّر أو فك حمولات basE91 لـ Joachim Henke عند التكامل مع أدوات أو أرشيفات أو مكتبات تتوقع بالفعل الأبجدية الكلاسيكية ذات الواحد وتسعين رمزًا.
التوثيق وفحوصات CI الذهبية
ثبّت تجهيزات encode وdecode حتى تفشل عينات التوثيق واختبارات التكامل المستمر بسرعة إذا انحرفت أبجدية basE91 أو قواعد طابور البتات.
الأسئلة الشائعة
كيف أشفّر نصًا إلى basE91؟
حقل result في الاستجابة يحمل سلسلة basE91 وbytes هو طول UTF-8.
كيف أفك basE91 إلى نص؟
عيّن mode إلى decode وضع سلسلة basE91 في text. تُزال الفراغات. حقل result هو نص UTF-8 المستعاد.
ماذا يحدث عند حرف basE91 غير صالح؟
تُرفض المحارف خارج أبجدية basE91 ذات الواحد وتسعين رمزًا؛ إخفاقات التحقق لا تُحاسب.
بماذا يختلف basE91 عن Base64؟
يستخدم basE91 أبجدية من 91 رمزًا وطابور عرض متغير 13/14 بتًا، بعبء نحو 23% مقابل نحو 33% لـ Base64. تنفّذ هذه الأداة basE91 لـ Joachim Henke وليس Base64 وفق RFC 4648.
هل يضيف basE91 حشوًا مثل علامات المساواة في النهاية؟
لا. تُكتب البتات المتبقية في النهاية رمزًا أو رمزين إضافيين، فيستعيد فك الترميز الطول الدقيق دون أي حشو. ولهذا تُرفض علامة المساواة الآتية من Base64 إذا وُجدت في سلسلة basE91.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/base91 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/base91", {
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/base91",
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/base91", 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/base91", 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.base91",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
basE91 مخطط مضغوط من الثنائي إلى النص يعبّئ البيانات في واحد وتسعين حرفًا ASCII قابلًا للطباعة، وهو عادة أكثر كثافة من Base64 ومفيد كلما احتجت حمولة أقصر وآمنة نصيًا دون الخروج من المدى القابل للطباعة الكلاسيكي. يبحث الناس عن مشفّر base91 أو مفكّك basE91 عندما يخزّنون رموزًا ثنائية قصيرة في JSON أو التذاكر أو الدردشة، أو يقارنون العبء مع Base64، أو يستعيدون سلسلة basE91 أنتجها أداة أخرى بأبجدية Joachim Henke الأصلية. تركز هذه القدرة على ذلك العمل اليومي: اختر الوضع encode أو decode، أرسل حقل نص، واستلم السلسلة المحوّلة مع طول البايتات، أو خطأ invalid_input واضح عندما تحتوي حمولة الفك على حرف خارج أبجدية basE91. يعمل ودجت المتصفح المجاني بالكامل على جهازك للفحص السريع؛ وتوفّر واجهة API المدفوعة مسبقًا العقد نفسه بسعر $0.002 لكل عنصر ناجح للسكربتات وSDK وتجهيزات التكامل المستمر التي تحتاج خطوة basE91 مستقرة دون تثبيت مكتبات خاصة بكل لغة في كل خدمة.
تشفير نص UTF-8 إلى basE91
أرسل جسم JSON مع حقل السلسلة الإلزامي text مضبوطًا على الرسالة الواضحة التي تريد تمثيلها بـ basE91، واترك mode عند قيمته الافتراضية encode أو عيّن mode إلى encode صراحة. تُقبل الأسماء المستعارة الاختيارية input وvalue وs لنفس الحقل عند توليد عملاء من أسماء نماذج قديمة. تتضمن الاستجابة دائمًا result بسلسلة basE91، وmode مساويًا لـ encode، وvariant مساويًا لـ base91، وbytes مساويًا لطول UTF-8 قبل التشفير حتى تتحقق من حجم الحمولة في الاختبارات.
فك basE91 إلى نص ومعالجة المحارف غير الصالحة
أي حرف آخر — بما في ذلك علامات تساوي حشو Base64 أو الشرطة أو الشرطة السفلية الآمنة لعناوين URL من أبجديات أجنبية أو ضوضاء ثنائية — يسبب فشلًا فوريًا invalid_input برسالة تسمي شرط حرف basE91 غير الصالح، حتى يصحح العملاء اللصق بدل استلام Unicode تالف. بعد التحقق من الأبجدية تُفك البايتات المستعادة كـ UTF-8 بمفكّك قاتل: إن لم تكن الحمولة نص Unicode صالحًا تحصل على invalid_input بدل محارف بديلة تفسد العروض اللاحقة. إخفاقات التحقق لا تُحاسب على API المدفوعة مسبقًا، لذا فحص رمز مشبوه رخيص للمشغّلين وآمن للمستخدمين النهائيين.
استخدام API والتسعير وسير العمل والحدود العملية
استخدم API KIT المدفوعة مسبقًا عندما يحتاج خلفية أو دالة serverless أو SDK نفس خطوة التشفير أو الفك تحت رصيد بسعر $0.002 لكل عنصر ناجح؛ التحقق الفاشل لا يستهلك الرصيد بعد رفض المحرك للطلب. يمكن لمؤلفي SDK تعيين حقل result مباشرة إلى زر نسخ، بينما تجعل تسميات mode وvariant أمثلة OpenAPI مفهومة لقرّاء يعرفون فقط أبجدية الواحد وتسعين رمزًا وطابور العرض المتغير ذي الثلاثة عشر أو الأربعة عشر بتًا.
حالات التكامل
رموز إعداد كثيفة وآمنة نصيًا
عبّئ مقاطع إعداد UTF-8 قصيرة بإحكام أكبر من Base64 للتذاكر والدردشة وJSON، ثم فكّها على الخدمة المستقبِلة بنفس حقل mode.
أسئلة تقنية
هل مشفّر basE91 مجاني؟
تعمل أداة المتصفح مجانًا على جهازك. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ إخفاقات التحقق لا تُحاسب.