تنسيق بصمة SSH بصيغة ست عشرية أو Base64
بصمة SSH تمثيل موجز لبايتات التجزئة يساعدكم على مقارنة مفتاح عام بقيمة موثوقة. تستقبل هذه الأداة البايتات التي حُسبت مسبقًا وتعرضها بصورة ثابتة كأرقام ست عشرية صغيرة تفصل بينها نقطتان أو بصيغة Base64 من دون حشو.
شغّل الأداة مجانًا
وهي لا تحلل المفتاح ولا تختار خوارزمية التجزئة ولا تحسب الملخص. يتيح فصل الحساب عن العرض للبرامج النصية وأدوات الإدارة ومنشئات الوثائق وحزم الاختبار إنتاج الصيغة المطلوبة بدقة من دون تغيير البايتات الأصلية.
ابدؤوا بالملخص الخام لا بملف المفتاح
تستقبل هذه القدرة بايتات تجزئة حُسبت مسبقًا من مفتاح SSH عام. أرسلوا البايتات بترتيبها الأصلي كأعداد صحيحة من 0 إلى 255. فمثلًا، يبدأ الملخص الذي تبدأ قيمه بـ 222 و173 و190 و239 بالنص <code>de:ad:be:ef</code> عند عرضه بالصيغة الست عشرية. لا تقبل الأداة عمدًا سطر مفتاح OpenSSH أو كتلة PEM أو شهادة أو نصًا يشبه الملخص فحسب؛ إذ يجب تحليل تلك المدخلات وحساب تجزئتها قبل التنسيق. هذا الفصل ضروري لأنه لا يمكن استنتاج ترميز المفتاح أو خوارزمية التجزئة بأمان من سلسلة نصية عشوائية. كما يجعل الاختبار مباشرًا، فالسلسلة نفسها من البايتات تنتج الأحرف نفسها دائمًا. احتفظوا بكل بايت، بما في ذلك الأصفار في البداية، لأن حذف بايت واحد يغيّر العرضين الست عشري وBase64. تُرفض المصفوفة الفارغة والمدخلات التي تتجاوز 128 بايتًا حتى لا تظهر قيمة عديمة الفائدة أو حمولة كبيرة أُرسلت بالخطأ على أنها بصمة صالحة.
اختاروا طريقة العرض التي يتوقعها النظام المستقبِل
اختاروا <code>hex-colon</code> عندما تتطلب أداة أو قائمة أصول أو إجراءات تشغيل رقمين ست عشريين صغيرين لكل بايت، تفصل بينهما نقطتان. يحتفظ كل بايت بعرضه الكامل، فيظهر الصفر <code>00</code> والعدد خمسة عشر <code>0f</code> والعدد 255 <code>ff</code>. اختاروا <code>base64</code> عندما يتوقع النظام الأبجدية الموجزة الشائعة في عرض بصمات SSH الحديثة. تُحذف علامات المساواة الخاصة بالحشو من نهاية نتيجة Base64، وفق العرف المتبع في عرض بصمات SSH. تغيّر الخيارات التمثيل فقط؛ فلا تعدّل البايتات ولا تعكسها ولا تقتطعها ولا تعيد تجزئتها. تتضمن الاستجابة الحقلين <code>fingerprint</code> و<code>format</code> كي تحتفظ العمليات اللاحقة بالقيمة وصيغتها معًا. أسماء الصيغ صارمة، ولذلك يؤدي الخطأ الإملائي أو الاسم غير المدعوم أو اختلاف حالة الأحرف إلى خطأ في الإدخال بدل اختيار قيمة افتراضية تبدو صحيحة وهي ليست المطلوبة.
قارنوا البصمات بأمان واعرفوا حدود التنسيق
لا تستخدموا القيمة المنسقة قبل معرفة كيفية الحصول على الملخص الخام. تكون المطابقة ذات دلالة فقط عندما يطبّق الطرفان خوارزمية التجزئة نفسها على البايتات المعيارية نفسها للمفتاح العام. لا يثبت التنسيق تحقق هذه الشروط، ولا يقوّي الملخص، ولا يصادق على المضيف. سجّلوا خوارزمية التجزئة بصورة منفصلة إن لم يذكرها البروتوكول أو النظام المحيط. عند المقارنة الآلية، طبّعوا القيمتين انطلاقًا من بايتاتهما أو اشترطوا صيغة صريحة بدل تخمينها من علامات الترقيم. توفر هذه القدرة نتائج ثابتة لرسائل الطرفية وتقارير النشر وقوائم المضيفين وشاشات الموافقة واختبارات الانحدار. لا تتصل بالشبكة ولا تخزن مفاتيح أو بصمات. تعمل نسخة المتصفح محليًا، وتكلف الأتمتة عبر API مبلغ $0.002 لكل طلب. تفشل قيم البايت غير الصحيحة والصيغ غير المدعومة برسالة واضحة. عند عدم التطابق، أوقفوا الإجراء وتحققوا من المصدر عبر قناة موثوقة.
حالات الاستخدام
إعداد رسالة التحقق من المضيف
اعرضوا الملخص بالصيغة نفسها التي يراها المسؤول قبل الموافقة على مضيف SSH جديد.
توحيد مخرجات قائمة الأصول
حافظوا على عرض موحد للبصمة حتى عندما تعيد أدوات الفحص بايتات التجزئة الخام.
إنشاء بيانات اختبار حتمية
ولّدوا قيم بصمات متوقعة وثابتة لأدوات SSH من دون الاعتماد على أوامر النظام أو إعدادات اللغة.
الأسئلة الشائعة
هل تحسب الأداة تجزئة مفتاح SSH العام؟
لا. إنها تنسق بايتات التجزئة الخام المحسوبة مسبقًا فقط، ويجب تحليل المفتاح وحساب الملخص قبل استخدامها.
ماذا تعيد صيغة Base64؟
تعيد الأبجدية القياسية لصيغة Base64 من دون علامات مساواة للحشو في النهاية، مع الحفاظ على ترتيب البايتات.
هل تحتفظ النتيجة الست عشرية بالأصفار الأولية؟
نعم. يُمثل كل بايت برقمين ست عشريين صغيرين بالضبط، وتفصل نقطتان بين البايتات المتجاورة.
ما قيم البايت الصالحة؟
يجب أن يكون كل عنصر عددًا صحيحًا من 0 إلى 255، وأن تضم المصفوفة من عنصر واحد إلى 128 عنصرًا.
ماذا يحدث عند طلب صيغة أخرى؟
يفشل الطلب بوصفه إدخالًا غير صالح. لا تُدعم إلا القيمتان <code>hex-colon</code> و<code>base64</code>.
كم تبلغ تكلفة التنسيق عبر API؟
يكلف كل طلب API مبلغ $0.002. ويمكنكم أيضًا تشغيل المنسق الحتمي نفسه في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/security/ssh-key-fingerprint-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hash_bytes":[222,173,190,239,0,1,127,128],"format":"hex-colon"}'const res = await fetch("https://api.kit.forhosting.com/security/ssh-key-fingerprint-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/ssh-key-fingerprint-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/ssh-key-fingerprint-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hash_bytes":[222,173,190,239,0,1,127,128],"format":"hex-colon"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hash_bytes":[222,173,190,239,0,1,127,128],"format":"hex-colon"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/ssh-key-fingerprint-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.ssh_key_fingerprint_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 128 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |