شفرة إحداثيات QWERTY
على لوحة مفاتيح QWERTY الأمريكية تصبح hello هي 2,6 1,3 2,9 2,9 1,9: يُسمّى كل حرف برقم صفه من الأعلى ورقم عموده من اليسار. وعند فك هذه الأزواج تعود HELLO. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- hello
- وضع الحساب
- Encode
- النتيجة
- 2,6 1,3 2,9 2,9 1,9
- الطول
- 19
- الحروف المُطابَقة
- 5
- التخطيط
- qwerty
شفرة إحداثيات لوحة المفاتيح لا تدور الحروف على الأبجدية ولا تزحلقها إلى مفاتيح مجاورة. تسمّي كل محرف بموضعه على تخطيط حروف QWERTY الأمريكي: رقم صف يبدأ من واحد من صف الحروف العلوي نحو الأسفل، ورقم عمود يبدأ من واحد من اليسار إلى اليمين داخل ذلك الصف. الحرف H يقع في الصف المنزلي عند العمود السادس، فيُرمَّز بالرمز اثنين فاصلة ستة؛ وQ هو واحد فاصلة واحد؛ وM هو ثلاثة فاصلة سبعة. الترميز يحوّل كلمة إلى قائمة رموز مفصولة بمسافات؛ والفك يقرأ الرموز ويعيد بناء حروف كبيرة. المسافات في العبارة تصبح علامات شرطة مائلة حتى يمكن للنص متعدد الكلمات الذهاب والعودة.
كيف تعمل إحداثيات الصف والعمود في QWERTY
تُعامل شبكة حروف QWERTY الأمريكية كثلاثة صفوف مستقلة تُحسب من الأعلى. الصف الأول يحوي qwertyuiop عبر عشرة أعمدة. الصف الثاني يحوي asdfghjkl عبر تسعة أعمدة.
الصف الثالث يحوي zxcvbnm عبر سبعة أعمدة. تُرقَّم الأعمدة من واحد عند الحافة اليسرى لكل صف، فالحرف A في الصف المنزلي هو اثنان فاصلة واحد، وF اثنان فاصلة أربعة، وL اثنان فاصلة تسعة. يسير الترميز على المدخل من اليسار إلى اليمين: يُبحث عن كل حرف لاتيني في خريطة ثابتة ويُصدَر كرمز مضغوط بصيغة صف فاصلة عمود؛ وكل مسافة تصبح رمز شرطة مائلة حتى تبقى حدود الكلمات؛ وتُوصل الرموز بمسافات مفردة لتشكيل سلسلة النتيجة.
يقسم الفك النص المشفّر على المسافات البيضاء، ويقبل رموزًا بصيغة صف فاصلة عمود، مع أقواس اختيارية، أو بفاصل شرطة أو نقطتين، ويعيد كل زوج صالح إلى الحرف الكبير على ذلك المفتاح، ويعيد رموز الشرطة المائلة إلى مسافات. الأرقام وعلامات الترقيم والرموز التعبيرية والحروف خارج الكتلة اللاتينية الأساسية لا تظهر على هذه الشبكة الحرفية فقط، لذلك يفشل المحرك فورًا برسالة خارج الشبكة بدل اختراع إحداثي. رياضيًا التحويل بحث في جدول ثابت بلا التفاف قياسي ولا جدول مفاتيح: الحرف نفسه يُقابَل دائمًا بالزوج نفسه والزوج الصالح نفسه يعود دائمًا إلى الحرف نفسه.
لا استدعاء شبكة ولا بذرة عشوائية ولا طابع ساعة حائطية في المسار. تنفّذ هذه الصفحة إحداثيات لوحة المفاتيح المادية فقط—لا مربعات بوليبوس الأبجدية، ولا إزاحات المفاتيح المجاورة، ولا تشفيرًا قويًا.
ما الذي ترسلونه وما الذي تستلمونه
أرسلوا حقل سلسلة إلزاميًا باسم text وحقل mode اختياريًا بقيمة encode أو decode. وضع encode يقابل كل حرف برمز صف فاصلة عمود وكل مسافة بشرطة مائلة؛ ووضع decode يقرأ تلك الرموز ويعيد بناء سلسلة حروف كبيرة. إخفاقات التحقق لا تستهلك الرصيد المدفوع مسبقًا.
الفحوص الكلاسيكية تشمل ترميز hello إلى الرموز الخمسة اثنان فاصلة ستة، وواحد فاصلة ثلاثة، واثنان فاصلة تسعة، واثنان فاصلة تسعة، وواحد فاصلة تسعة؛ وفك سلسلة الإحداثيات تلك يستعيد HELLO؛ والتأكد من أن hello مع علامة تعجب يفشل لأن الترقيم خارج الشبكة. استخدموا نموذج المتصفح المجاني للفحوص الصفية السريعة ومسودات الألغاز، ثم استدعوا العقد ذاته من السكربتات عند الحاجة إلى تجهيزات جماعية أو اختبارات انحدار.
أين تظهر شفرات إحداثيات لوحة المفاتيح في العمل الحقيقي
غالبًا ما تطلب التشفيرية التمهيدية وألغاز تخطيط لوحة المفاتيح من الطلاب إعادة كتابة رسالة كعنوان شبكة لكل مفتاح بدل عد مواضع الأبجدية؛ ويُسرّع وسيط موثوق يرمّز ويفك بأرقام صف وعمود صريحة عروض الواجبات والمصححات الآلية. تمارين الإحماء في capture-the-flag ودعائم غرف الهروب تخفي أحيانًا عبارات كقوائم إحداثيات على ملاحظات أو صور، ويريد الحلّالون خريطة QWERTY سريعة ومتوقعة بدل حزمة تحليل تشفير عامة. قد يعمّي فرق الدعم والمحتوى الخواطف أو إجابات الاختبارات خفيفًا كقوائم إحداثيات ويحتاجون المسار العكسي دون تثبيت مكتبة خاصة بلغة.
إن احتجتم إلى إزاحات مفاتيح مجاورة، أو أزواج أرقام بوليبوس الكلاسيكية على مربع أبجدي، أو دوران قيصر للأبجدية، أو تشفيرًا موثّقًا قويًا، فاعاملوها كنيات بحث وصفحات هبوط منفصلة بدل تحميل صفحة إحداثيات لوحة المفاتيح هذه فوق طاقتها.
حالات الاستخدام
عروض شبكة QWERTY في الصف
رمّزوا كلمات نموذجية كرموز صف,عمود حتى يرى الطلاب مواضع المفاتيح المادية بدل حساب الأبجدية، ثم فكّوا للتحقق من أوراقهم.
عبارات إحداثيات للألغاز وCTF
حوّلوا سلاسل التحدي إلى إحداثيات QWERTY أو اعكسوا قائمة أزواج مطبوعة دون كتابة سكربت لمرة واحدة لكل مجموعة مسائل.
الأسئلة الشائعة
ما شفرة إحداثيات لوحة المفاتيح؟
تعيين يستبدل كل حرف بصفه وعموده على تخطيط حروف QWERTY الأمريكي، بدل تدوير الأبجدية أو الانزلاق إلى مفتاح مجاور.
كيف تُفَك الإحداثيات إلى حروف؟
اضبطوا mode على decode ومرّروا رموزًا مفصولة بمسافات مثل 2,6 للحرف H. تُقبل أقواس اختيارية وفواصل شرطة أو نقطتين؛ والشرطة المائلة تعلّم مسافة.
ماذا يُعد مدخلًا خارج الشبكة؟
عند الترميز، أي محرف ليس حرفًا لاتينيًا A–Z/a–z أو مسافة. عند الفك، رموز مشوّهة أو أزواج صف,عمود لا تقع على مفتاح حرف QWERTY حقيقي.
كيف تُرقَّم الصفوف والأعمدة؟
الصفوف تبدأ من واحد من صف الحروف العلوي (qwertyuiop) نحو الأسفل. الأعمدة تبدأ من واحد من اليسار إلى اليمين داخل كل صف.
كيف تُحفظ المسافات بين الكلمات؟
تتحول كل مسافة إلى شرطة مائلة توضع بين أزواج الإحداثيات. وعند الفك تعود كل شرطة مائلة مسافة، فترجع الجملة المكونة من عدة كلمات كاملة بحروف كبيرة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/keyboard-coords \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/keyboard-coords", {
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/keyboard-coords",
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/keyboard-coords", 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/keyboard-coords", 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.keyboard_coords",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
أي محرف ليس حرفًا لاتينيًا ولا مسافة عند الترميز، وأي إحداثي لا يقع على مفتاح حقيقي عند الفك، يُبلَّغ كمدخل خارج الشبكة بخطأ invalid_input واضح. أداة المتصفح المجانية وواجهة API المدفوعة تشتركان في دالة تماثلية نقية واحدة، فتبقى عروض الصف والألغاز والمسارات الآلية متفقة دائمًا على النتيجة نفسها للمدخلات نفسها.
كيف تعمل إحداثيات الصف والعمود في QWERTY
تُتجاهل حالة الحروف عند الترميز في بحث الخريطة لأن المفاتيح المادية لا تملك خلايا منفصلة للكبير والصغير؛ والأبجدية المفكوكة دائمًا كبيرة لاستقرار عقد API. ولأن كل خطوة عمل نقي على سلاسل وأعداد صحيحة فوق تخطيط ثابت، فالشفرة حتمية بالكامل: النص والوضع المتطابقان ينتجان دائمًا JSON متطابقًا.
ما الذي ترسلونه وما الذي تستلمونه
عند إغفال mode يكون encode هو الافتراضي حتى تظل الحمولة الدنيا مفيدة. عند النجاح تعيد الاستجابة mode والنص الأصلي، وتُرجع سلسلة result المحوّلة، وlength لذلك الناتج، وletters_mapped كعدد المحارف الأبجدية المعالجة، ومصفوفة pairs بتفاصيل الحرف والصف والعمود والرمز لكل رمز لمساعدة أوراق العمل، إضافة إلى تسميات layout وrows وcipher للعملاء الذين يتحققون من الملف الذي بلغوه. غياب text، وكائنات غير سلسلة لـ text، وقيم mode غير مدعومة، والسلاسل أطول من الحد الموثّق، وأي محرف ترميز ليس حرفًا لاتينيًا أو مسافة، ورموز الفك المشوّهة، والإحداثيات خارج صفوف الحروف الثلاثة، كلها تفشل بـ invalid_input مع رسالة إنجليزية واضحة تسمّي المدخل خارج الشبكة عند الاقتضاء. تسعير استدعاءات API الناجحة هو القاعدة المنشورة $0.002 لكل عنصر.
أين تظهر شفرات إحداثيات لوحة المفاتيح في العمل الحقيقي
يحتاج مؤلفو المناهج الذين يبنون دروسًا تفاعلية إلى شكل JSON نفسه في ودجت المتصفح وفي API حتى تبقى أوراق العمل دون اتصال والمدققون عبر الإنترنت متوائمين. ولأن هذه القدرة محرك parse نقي، فتسعير API هو القاعدة المنشورة $0.002 لكل عنصر ناجح، والتحقق الفاشل لا يستهلك الرصيد.
حالات التكامل
تعمية خفيفة للخواطف
خزّنوا إجابات الاختبارات أو التسميات كإحداثيات لوحة مفاتيح وفكّوها لاحقًا بنفس العقد في المتصفح أو عبر API.
أسئلة تقنية
كم التكلفة؟
أداة المتصفح مجانية وتعمل محليًا. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل عنصر ناجح؛ والمدخل غير الصالح لا يُحاسب.