شفرة الكتاب
أخفِ رسالة داخل نص تتقاسمه مع شخص آخر: بمفتاح من 13 كلمة تصبح «quick fox river» هي 2 4 12، وتعود هذه الأرقام إلى الكلمات نفسها. مناسب للألغاز وغرف الهروب ودروس التشفير. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الإجراء
- Encrypt
- النتيجة
- 2 4 12
- عدد كلمات المفتاح
- 13
- المواضع
- 2, 4, 12
- الكلمات
- quick, fox, river
تخفي شفرة الكتاب رسالة قصيرة بالإشارة إلى كلمات موجودة أصلًا في مقطع مشترك بدل اختراع أبجدية استبدال. الصقوا أي نص مفتاحي تمسكونه أنتم والطرف الآخر—فقرة أو قصيدة أو صفحة مطبوعة—ثم شفّروا عبارة إلى قائمة مواضع كلمات تبدأ من 1، أو فكّوا تلك الأرقام إلى الكلمات الأصلية. المطابقة لا تراعي حالة الأحرف، وتُزال علامات الترقيم البادئة والختامية عند التقسيم إلى رموز، وتُدرج كلمات الرسالة الغائبة عن المفتاح حتى يتسنى لكم توسيع المقطع أو إعادة صياغة النص الواضح. المحرك نقي وحتمي: المفتاح والرسالة ذاتهما ينتجان دائمًا المواضع ذاتها، بلا استدعاءات شبكة أو بذور عشوائية أو ساعات.
كيف تستخدم شفرة الكتاب مواضع الكلمات
تعامل شفرات الكتاب الكلاسيكية النص المشترك كدفتر رموز. بدل استبدال حروف بحروف أخرى، تُكتب كل وحدة من الرسالة السرية كمؤشر إلى ذلك النص—وغالبًا فهرس كلمة يُعدّ من بداية المقطع. تنفّذ هذه الأداة صورة واضحة وتعليمية لتلك الفكرة: يُقسَّم نص المفتاح على المسافات البيضاء، ويُزال عن كل رمز ترقيمه البادئ والختامي، وتُرقَّم المتتالية الناتجة من واحد.
عند التشفير تُبحث كل كلمة من الرسالة بلا مراعاة لحالة الأحرف مقابل أول ظهور لنفس الكلمة في قائمة المفتاح، وتكون الشفرة قائمة تلك المواضع (أساس 1) مفصولة بمسافات. عند الفك يُقرأ حقل message كأعداد صحيحة مفصولة بمسافات أو فواصل أو فواصل منقوطة؛ ويُحلّ كل رقم إلى الكلمة عند ذلك الفهرس في المفتاح. وبما أن المطابقة الأولى وحدها تُستخدم، يظل التشفير والفك غير ملتبسين حتى لو تكررت كلمة لاحقًا في المقطع.
الرموز غير الحرفية خارج رموز الكلمات لا تصبح مواضع بمفردها، فتبقون تفكّرون بكلمات كاملة. هذا البناء أضعف عمدًا من التشفير الحديث ويُقصد به التعليم والألغاز الترفيهية وتمهيدات CTF والتعمية العكسية الخفيفة—لا حماية أسرار حقيقية أثناء النقل أو السكون. ما زالت الترددات والسياق تتسرب عندما يكون المفتاح كتابًا عامًا معروفًا؛ عاملوا المقطع المشترك كسرّ مشترك بروح حيلة صالون كلاسيكية لا كقناة موثّقة.
حالات الاستخدام
تاريخ التشفير في الصف
أظهروا للطلاب كيف يصبح مقطع مشترك دفتر رموز وكيف تشفّر فهارس الكلمات وتُفك دون أبجدية استبدال حروف.
تصميم ألغاز وغرف هروب
رمّزوا أدلة قصيرة كقوائم مواضع لا تُفتح إلا حين يملك اللاعبون الفقرة أو القصيدة المطبوعة نفسها.
CTF وشفرات الهواة
ولّدوا تحديات شفرة كتاب قابلة للعكس وأبلغوا عن كلمات المفتاح الناقصة ليضبط المؤلفون المقطع قبل النشر.
الأسئلة الشائعة
ما المدخلات التي تحتاجها شفرة الكتاب؟
يتوقع encrypt كلمات نص واضح؛ ويتوقع decrypt أرقام مواضع بأساس 1.
ماذا يحدث إن لم تكن كلمة من الرسالة في المفتاح؟
وسّعوا مقطع المفتاح أو أعيدوا صياغة الرسالة لتغطيتها.
هل شفرة الكتاب حتمية وآمنة؟
إنها شفرة مواضع كلاسيكية للتعليم والألغاز، وليست أمانًا تشفيريًا حديثًا.
ماذا يحدث إذا تكررت كلمة في نص المفتاح؟
تستخدم الأداة دائمًا أول ظهور للكلمة، فيكون لكل كلمة موضع واحد فقط. وبذلك يبقى التشفير وفك التشفير واضحين حتى لو تكررت الكلمة لاحقًا في النص.
كيف أكتب الأرقام لفك التشفير؟
اكتب مواضع الكلمات أعدادًا صحيحة موجبة تفصل بينها مسافات أو فواصل أو فواصل منقوطة. ويجب ألا يتجاوز أي رقم عدد كلمات المفتاح، وإلا يتوقف فك التشفير برسالة توضح المشكلة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/book-cipher \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"key_text":"The quick brown fox jumps over the lazy dog near the river bank","message":"quick fox river"}'const res = await fetch("https://api.kit.forhosting.com/enc/book-cipher", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"key_text": "The quick brown fox jumps over the lazy dog near the river bank",
"message": "quick fox river"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/book-cipher",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"key_text": "The quick brown fox jumps over the lazy dog near the river bank",
"message": "quick fox river"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/book-cipher", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"key_text":"The quick brown fox jumps over the lazy dog near the river bank","message":"quick fox river"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"key_text":"The quick brown fox jumps over the lazy dog near the river bank","message":"quick fox river"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/book-cipher", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"key_text": "The quick brown fox jumps over the lazy dog near the river bank",
"message": "quick fox river"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.book_cipher",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
استخدموها مجانًا في المتصفح لعروض الصف وتصميم الألغاز، أو استدعوا المنطق نفسه عبر API بسعر $0.002 لكل طلب ناجح.
التشفير والفك والكلمات الناقصة
عند التشفير تُقسَّم الرسالة إلى كلمات بنفس طريقة المفتاح؛ وتُربط كل كلمة بأول موضع لها في المفتاح إن وُجدت. الكلمات الناقصة لا تُجهض نداء تشفير ناجح: تُبلَّغ حتى يوسّع المؤلف مقطع المفتاح أو يحذف مفردات نادرة دون تخمين أي رمز فشل. دورة ذهاب encrypt ثم decrypt بنفس المفتاح تستعيد أشكال سطح المفتاح لكل كلمة كانت حاضرة، وقد تختلف حالة الأحرف عن النص الواضح الأصلي مع الحفاظ على مداخل القاموس نفسها. أرسلوا سلسلة key_text إلزامية وسلسلة message إلزامية، واضبطوا action اختياريًا على encrypt أو decrypt (encrypt هو الافتراضي). تشمل الاستجابة الـ action المعيارية، وعدد كلمات المفتاح، والرسالة الأصلية، وسلسلة result لمواضع مفصولة بمسافات لكل كلمة وُجدت، والمصفوفات المتوازية للمواضع وأشكال السطح المأخوذة من المفتاح، وقائمة missing_words للرموز التي لا تظهر في المفتاح أبدًا، والعدادين words_found و words_total. عند الفك يجب أن تحتوي الرسالة على مواضع صحيحة موجبة فقط؛ فجزء غير رقمي أو موضع أكبر من عدد كلمات المفتاح يفشل فورًا بـ invalid_input مع تسمية المشكلة. لا يخترع الفك مفردات ناقصة: كل رقم يُربط بكلمة من المفتاح أو يُرفض الطلب. key_text فارغ بعد التقسيم، و message فارغة بعد التقسيم عند التشفير، والحقول الناقصة، وقيم action غير القانونية تفشل أيضًا بـ invalid_input ولا تُحاسب.
استخدام API والتسعير ونصائح عملية
استخدموا action decrypt عندما تكون الرسالة قائمة مواضع أُنتجت لهذا المفتاح نفسه. ودجة المتصفح تشغّل الدالة النقية نفسها مجانًا ودون حساب، وهي مثالية للفصول ومؤلفي غرف الهروب والفحص اليدوي السريع قبل الربط. لا تعيدوا استخدام صفحة رواية عامة كما لو كانت مفتاحًا حديثًا: من يخمن الكتاب يمكنه محاولة نفس البحث. الحالة beta بينما تستقر الواجهة العامة، لكن قواعد ربط المواضع تتبع هذا البناء الكلاسيكي الثابت ولن تتغير لمدخلات متطابقة. استدعوا القدرة مع key_text و message كحقول إلزامية. تسعير API المستضافة مبلغ ثابت $0.002 لكل طلب ناجح؛ وإخفاقات التحقق مثل key_text ناقص أو مقطع فارغ أو رمز فك غير صحيح أو موضع خارج النطاق لا تستهلك الرصيد. فضّلوا مقطعًا طويلًا بما يكفي لتغطية مفرداتكم حتى تبقى missing_words فارغة، وصياغة مميزة ليسهل التحقق يدويًا من فهارس الظهور الأول. في الأنابيب أرسلوا كل رسالة كمهمة مستقلة واجمعوا النتائج عبر مسار webhook أو الرابط الموقّع المعتاد. أبقوا أسماء الحقول صريحة بدل حشو نثر حر في كتلة واحدة: يبقى العقد متوافقًا مع OpenAPI وأنواع SDK وعناصر النماذج، ويتجنب تحليلًا ملتبسًا بين المفتاح والنص المشفّر.
أسئلة تقنية
ماذا تتضمن الاستجابة الناجحة؟
action و key_word_count و message و result و positions و words و missing_words و words_found و words_total. result مواضع مفصولة بمسافات عند التشفير وكلمات مفصولة بمسافات عند الفك.
كم تكلفة API شفرة الكتاب؟
كل استدعاء API ناجح يكلف $0.002. يعمل المحرك نفسه مجانًا في متصفحكم دون حساب. المدخل غير الصالح لا يُحاسب.