مُرمِّز أحرف العرض الصفري
يخفي سرًا داخل نص عادي بأحرف يونيكود غير مرئية: تصبح «Hi» المخفية في «Hello world» 18 حرفًا بعرض صفري لا يراها أحد، ويكشفها فك الترميز من جديد. مفيد للعلامات المائية والدروس، لكنه ليس تشفيرًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- المفتاح السري
- Hi
- نص التغطية
- Hello world
- وضع الحساب
- encode
- النتيجة
- Hello world
- الترميز
- zero_width
- طول السر
- 2
- طول نص التغطية
- 11
أحرف العرض الصفري هي نقاط رمز يونيكود لا تشغل عرضاً مرئياً، فلا يلاحظها القارئ العادي بينما تحتفظ المحللات والنسخ واللصق بالبايتات. يبحث فك الترميز عن الإطار نفسه، ويعيد بناء البتات إلى بايتات، ويعيد السر الأصلي.
كيف يخفي ترميز بتات العرض الصفري سراً على مرأى الجميع
يحوّل المُرمِّز السر أولاً إلى بايتات UTF-8، ثم يمر على كل بت من الأكثر أهمية إلى الأقل داخل كل بايت. يصبح البت صفر U+200B (ZERO WIDTH SPACE) والبت واحد U+200C (ZERO WIDTH NON-JOINER). تُدرج المتتالية المؤطَّرة مباشرة بعد الحرف الأول من سلسلة الغلاف، فتبدو العبارات القصيرة طبيعية ويُضمن موضع إدراج ثابت للاختبارات الذهبية والذهاب والإياب.
ولأن كل خطوة حساب سلاسل وبايتات خالص، ينتج السر والغلاف نفسيهما دائماً نفس النص المخفي على أي بيئة تشغيل. يطابق هذا العقد شروح الصف عن الإخفاء المعلوماتي دون ادّعاء أن القناة سرية: الإخفاء بالعرض الصفري يتعلق بعدم الظهور في الواجهة، لا بمقاومة قارئ محفَّز يفحص نقاط الرمز.
أين يثبت مُرمِّز العرض الصفري قيمته في المنتجات والتعليم
تستخدم ورش الأمن والخصوصية مُرمِّز أحرف العرض الصفري ليُلصق المتعلمون نصاً مخفياً في دردشة أو مستند، ويتأكدوا أن الرسالة تبدو نظيفة، ثم يفكوا الترميز في خطوة ثانية ويروا خريطة البتات في حقل formula. يمكن لمسارات CMS والتوطين تعليم سلاسل تثبيت اصطناعية دون تغيير التخطيط المعروض، ثم إزالة العلامات أو التحقق منها في CI باستدعاء decode. ولأن التنفيذ تحليل خالص بلا رموز نموذج ولا شبكة صادرة، تبقى الاستجابة عند الأرضية التحليلية والتكلفة قابلة للتوقع.
فضّل هذه الأداة عندما تكون المهمة إخفاءً وكشفاً بأحرف تنسيق يونيكود؛ واختر مكتبات تشفير حقيقية عندما تكون السرية تحت الهجوم مطلباً. وثّق للمستخدمين النهائيين أن بعض المنصات تُطبّع أحرف العرض الصفري أو تحذفها عند الإرسال، لذا نفّذ دائماً ذهاباً وإياباً عبر decode بعد القناة الفعلية التي تهمك.
حالات الاستخدام
عروض إخفاء معلوماتي في الصف
أظهر للطلاب كيف تخفي بتات يونيكود غير المرئية سراً قصيراً داخل جمل غلاف عادية، ثم استخرجه بـ decode على الوحدة الحتمية نفسها.
علامات مائية ضد تسرب المسودات
ادمج معرّف فريق أو تذكرة كبتات عرض صفري في نصوص تسويق تجريبية لنسب اللصق المتسرب دون تغيير التخطيط المرئي.
فحوصات CI لمسارات اللصق
رمِّز سراً معروفاً في ملفات تثبيت، مرّره عبر المحرر أو تكامل الدردشة، ثم فك الترميز للتحقق من بقاء أحرف العرض الصفري في المسار.
الأسئلة الشائعة
كيف أكشف رسالة مخفية؟
استدعِ بـ mode decode وأرسل السلسلة المخفية كـ text.
ما أحرف يونيكود المستخدمة؟
البت 0 هو U+200B، والبت 1 هو U+200C، وعلامة البداية U+200D، وعلامة النهاية U+FEFF.
هل هذا تشفير؟
لا. ترميز العرض الصفري يخفي البتات عن القراء العابرين فقط. استخدم التشفير عندما تحتاج السرية.
كيف أخفي رسالة داخل نص؟
أدخل السر والنص الظاهر الذي سيغطيه. يتحول السر إلى بتات غير مرئية محاطة بعلامة بداية وعلامة نهاية، وتُدرج مباشرة بعد الحرف الأول من النص الظاهر، الذي يبقى مقروءًا كما هو.
هل تبقى الرسالة المخفية بعد النسخ واللصق؟
غالبًا نعم، لأن الأحرف غير المرئية تنتقل مع النص. لكن بعض التطبيقات توحّد هذه الأحرف أو تحذفها عند الإرسال، لذا فكّ ترميز النص مرة بعد مروره بالقناة التي تهمك لتتأكد أن السر ما زال موجودًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/zero-width \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"encode","op":"encode"}'const res = await fetch("https://api.kit.forhosting.com/enc/zero-width", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "encode",
"op": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/zero-width",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "encode",
"op": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/zero-width", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"encode","op":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"encode","op":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/zero-width", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"mode": "encode",
"op": "encode"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.zero_width",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يحوّل مُرمِّز أحرف العرض الصفري هذا سلسلة UTF-8 سرية إلى تيار من الرمزين U+200B وU+200C مؤطَّر بعلامتي U+200D وU+FEFF، ثم يدرج تلك الحمولة غير المرئية في نص الغلاف بعد الحرف الأول. يحصل دارسو الإخفاء المعلوماتي، والمطورون الذين يختبرون مسارات اللصق، وفرق المحتوى التي تضع علامات على نصوص تجريبية على عقد تحليلي حتمي خالص: الوحدة نفسها تغذّي ودجت المتصفح المجاني وواجهة API المدفوعة، فلا تختلف العروض عن الأتمتة. العلامات غير الصالحة أو مجموعات البتات الناقصة أو الحقول المفقودة تفشل بـ invalid_input ولا تُفوتر. الأداة ليست تشفيراً؛ من يعرف المخطط يمكنه استخراج الحمولة، فاستخدمها عوناً تعليمياً أو علامة مائية خفيفة أو طبقة عرض، لا كحدود سرية.
كيف يخفي ترميز بتات العرض الصفري سراً على مرأى الجميع
يبقى نص الغلاف المرئي مقروءاً لأن الحمولة تستخدم أحرف تنسيق ذات تقدّم عرض صفري فقط. تلف علامة البداية U+200D وعلامة النهاية U+FEFF تيار البتات حتى يتجاهل فك الترميز أحرفاً غير مرئية أخرى في المستند ويستعيد حمولة محددة بوضوح. يعكس فك الترميز المسار: إيجاد أول علامة بداية ثم علامة النهاية التالية، وقبول U+200B وU+200C فقط بينهما، واشتراط أن يكون عدد البتات مضاعفاً لثمانية، وإعادة تجميع البايتات، وفك UTF-8 بمُفكِّك صارم حتى تظهر التيارات التالفة كـ invalid_input لا كنص مشوّه.
عقد الإدخال والأوضاع وشكل الاستجابة والأخطاء
أرسل mode بقيمة encode أو decode. تشمل أسماء mode المستعارة hide وembed للترميز، وreveal أو extract لفك الترميز؛ الافتراضي encode عند حذف mode. لا تستهلك هذه الإخفاقات الرصيد المدفوع مسبقاً. الحقول الاختيارية غير المنطبقة على وضعٍ ما تُتجاهل ببساطة؛ ولا يخترع المعالج سراً عند غياب العلامات. يتطلب encode قيمة secret غير فارغة (الاسم المستعار message أو payload، بحد أقصى 4096 حرفاً) ونص غلاف غير فارغ (يُقبل أيضاً كـ text أو input أو value أو data، بحد أقصى 100000 حرف). يتطلب decode نصاً text غير فارغ يحتوي حمولة مؤطَّرة (الأسماء المستعارة cover أو input أو value أو data أو stego، بحد أقصى 200000 حرف). عند نجاح encode يتضمن الجسم result (سلسلة مخفية)، وmode، وencoding zero_width، وsecret_length، وcover_length، وresult_length، وbyte_count، وbit_count، وzero_width_count، وformula، ورسالة قصيرة تلخص عدد بايتات UTF-8 المخفاة. عند نجاح decode يتضمن الجسم result وsecret (السلسلة المستخرجة)، وmode، وencoding، والأطوال، وعدادات البتات والبايتات، وzero_width_count، وformula، ورسالة كشف. الحقول المفقودة أو السلاسل الفارغة أو mode غير المعروف أو علامات البداية أو النهاية المفقودة أو أحرف غير بتية داخل الإطار أو علامات متداخلة أو طول بتات ليس مضاعفاً لثمانية أو UTF-8 غير صالح بعد تجميع البتات ترمي invalid_input برسالة إنجليزية واضحة. أبقِ الحمولات معتدلة للودجات وثبّت سلاسل result في الاختبارات؛ أحرف العرض الصفري يونيكود حقيقي، فيجب أن تحافظ أمثلة JSON عليها بدقة.
أين يثبت مُرمِّز العرض الصفري قيمته في المنتجات والتعليم
تحقن فرق ضمان الجودة علامات مائية غير مرئية في نصوص تسويق تجريبية لاكتشاف تسرب المسودات عبر مسارات لصق غير مضبوطة؛ استدعاء API حتمي بسعر $0.002 لكل عنصر ناجح أرخص من بناء Worker مخصص لسكربت لمرة واحدة.
أسئلة تقنية
كيف أخفي سراً بأحرف العرض الصفري؟
استدعِ بـ mode encode (أو احذف mode)، وأرسل secret وcover غير فارغين. تعيد API نصاً مخفياً بإطار U+200D…U+FEFF من بتات U+200B/U+200C بعد أول حرف غلاف.
كم تكلفة مُرمِّز أحرف العرض الصفري؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقاً بسعر $0.002 لكل استدعاء ناجح؛ الإدخال غير الصالح لا يُفوتر.