احسب بصمة hash لأي ملف
أداة تحسب بصمة hash لملف أو نص بخوارزميات MD5 وSHA-256 وSHA-512، وهي سلسلة محارف ثابتة الطول تميّز محتوى الملف بدقة: أي تغيير ولو حرف واحد يُغيّر البصمة كاملة. تستخدمها فرق تقنية للتحقق من أن ملفًا نُقل أو نُزِّل دون أي تلف أو تعديل.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
ما الذي تكشفه بصمة hash فعليًا
بصمة hash رقم أو سلسلة محارف ثابتة الطول تُحسَب من محتوى الملف بالكامل، لا من اسمه أو تاريخه. أي تغيير في المحتوى — ولو حرف واحد — يُنتج بصمة مختلفة تمامًا عن الأصل. لهذا تُستخدم البصمة للتحقق من أن ملفًا نُقل عبر الشبكة أو حُمِّل من موقع دون أي تلف طرأ عليه أثناء النقل.
اختيار الخوارزمية المناسبة
توفر الأداة ثلاث خوارزميات شائعة: MD5 السريعة والمناسبة للتحقق البسيط من سلامة ملف، وSHA-256 الأكثر أمانًا والمعتمدة في التوقيعات الرقمية الحديثة، وSHA-512 لملفات تتطلب مستوى حماية أعلى. يختار المطور الخوارزمية حسب ما يطلبه المصدر الذي يقارن معه البصمة، إذ لا تتطابق بصمة MD5 مع بصمة SHA-256 لنفس الملف.
من ملف أم من نص مباشرة
يمكن حساب البصمة من ملف تُرفعه إلى المتصفح، أو من نص تلصقه مباشرة — مفيد للتحقق من كلمة مرور أو مفتاح API قبل تخزينه بصيغة مشفّرة. المعالجة بالحالتين تجري داخل المتصفح، فلا يغادر الملف أو النص جهازك في أي لحظة.
مقارنة آلية عبر الـAPI
لفريق يحتاج التحقق التلقائي من مئات الملفات عند كل رفعة — كنظام يستقبل مستندات من عملاء متعددين — تتيح الأداة عبر الـAPI حساب البصمة برمجيًا ومقارنتها بالقيمة المتوقعة، بسعر $0.002 لكل ملف، فيرفض النظام تلقائيًا أي ملف تالف قبل معالجته.
حالات الاستخدام
التحقق من ملف نظام قبل التثبيت
يحمّل محمد الحربي ملف تثبيت من موقع خارجي ويقارن بصمة SHA-256 المعروضة على الموقع مع بصمة الملف الذي وصله، للتأكد أن التحميل لم يتلف أو يُستبدل.
التحقق من نسخة احتياطية بعد النقل
ينقل فريق تقني في شركة الواحة للتجارة المحدودة نسخة احتياطية ضخمة إلى خادم آخر، ويقارن بصمة الملف قبل النقل وبعده للتأكد أن النسخة وصلت كاملة دون تلف.
رفض ملفات تالفة تلقائيًا عبر الـAPI
يبني مطور نظام استقبال مستندات لعملاء متعددين، ويستخدم الـAPI لحساب بصمة كل ملف وارد ومقارنتها بالقيمة المتوقعة قبل قبوله في النظام.
الأسئلة الشائعة
ما الفرق بين MD5 وSHA-256؟
MD5 أسرع لكنه أقل أمانًا للاستخدامات الحساسة؛ SHA-256 أبطأ قليلًا لكنه المعتمد اليوم في التوقيعات الرقمية والتحقق الأمني الجاد.
هل يرفع الملف إلى خادمكم عند حساب البصمة؟
لا، عند الاستخدام من هذه الصفحة تُحسَب البصمة داخل متصفحك فقط، ولا يغادر الملف جهازك أبدًا.
هل يمكن حساب بصمة نص بدل ملف؟
نعم، يمكن لصق النص مباشرة في الأداة والحصول على بصمته بأي من الخوارزميات الثلاث.
كم تكلفة التحقق الآلي من عدة ملفات؟
$0.002 لكل ملف عبر الـAPI؛ الاستخدام من المتصفح لملف واحد أو عدة ملفات يدويًا يبقى مجانيًا بلا حدّ.
هل تتذكر الأداة الملفات التي حسبت بصمتها؟
لا، لا يُحتفَظ بأي ملف أو بصمة بعد إغلاق الصفحة أو انتهاء طلب الـAPI.
هل توجد حد لحجم الملف؟
الملفات الكبيرة جدًا قد تستغرق وقتًا أطول للمعالجة داخل المتصفح حسب أداء الجهاز؛ للملفات الضخمة جدًا يُفضَّل التواصل معنا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/hash \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/hash", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/hash",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/hash", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/hash", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"items": [
"valor-1",
"valor-2"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.hash",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |