حاسبة Adler-32
احصل على مجموع تحقق Adler-32 لأي نص، وهو المجموع المزدوج المستخدم داخل zlib: تعطي كلمة Wikipedia القيمة 11e60398، وA يساوي 920 وB يساوي 4582. مفيد لمراجعة البيانات المضغوطة أو التمارين وفق RFC 1950. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Wikipedia
- النتيجة
- 11e60398
- المجموع الاختباري Adler32
- 11e60398
- Hex
- 11e60398
- عشري
- 300,286,872
Adler-32 هو مجموع تحقق بثلاثين واثنين بتًا صمّمه Mark Adler ويُستخدم داخل zlib وعائلة تنسيقات DEFLATE. بخلاف فحص التكرار الدوري، يحافظ على مجموعَين جاريَين عبر بايتات الرسالة ويجمعهما في عدد صحيح بلا إشارة يُحسب بسرعة على المعالجات العادية. يحتاج المهندسون الذين يتحققون من حمولات مضغوطة، وطلاب RFC 1950، وفرق الدعم التي تقارن مقطورات من سجلات الأجهزة، غالبًا إلى النتيجة نفسها الواردة في المراجع لسلسلة قصيرة: A الابتدائي يساوي واحدًا، وB الابتدائي يساوي صفرًا، وكلاهما يُختزلان بباقي القسمة على خمسة وستين ألفًا وخمسمائة وواحد وعشرين، ثم يُزاح B ست عشرة بتة إلى اليسار ويُدمج مع A. تقبل أداة مجموع تحقق Adler-32 هذه نصًا غير فارغ، وترمّزه بصيغة UTF-8، وتشغّل تلك الحلقة الحتمية، وتعيد القيمة الكاملة بثلاثين واثنين بتًا كثماني أرقام ست عشرية صغيرة مع العدد العشري، والجزئيين A وB، وملخص قصير.
ما الذي يحسبه Adler-32 ولماذا تهمّ كلمة hex
يعامل Adler-32 كل رسالة كتسلسل بايتات ويحدّث مراكِمَين. يبدأ المُراكِم الأول، المسمى A، من واحد ويضيف كل بايت، مع الاختزال بباقي القسمة على خمسة وستين ألفًا وخمسمائة وواحد وعشرين بعد كل خطوة. يبدأ المُراكِم الثاني، المسمى B، من صفر ويضيف قيمة A الحالية بعد كل بايت، مجددًا بباقي القسمة على نفس العدد الأولي.
عند انتهاء التدفق يُشكَّل مجموع التحقق بوضع B في الست عشرة بتة العليا وA في الست عشرة بتة السفلى من عدد صحيح بلا إشارة بثلاثين واثنين بتًا. هذا البناء هو تعريف RFC 1950 وتنفيذ zlib تمامًا، لذا تنتج سلسلة التحقق المعروفة Wikipedia القيمة الست عشرية أحد عشر e ستة صفر ثلاثة تسعة ثمانية. إعادة ثماني أرقام hex صغيرة تسهل اللصق في تفريغات البروتوكول وتجهيزات التكامل المستمر وملاحظات تصحيح DEFLATE دون جدل حول بادئات الترتيب البايتي أو حالة الأحرف.
تعيد الاستجابة أيضًا العدد العشري وقيمتي A وB المنفصلتين وتسمية الخوارزمية Adler-32 وعدد بايتات UTF-8 والنص الأصلي حتى يعرض العملاء سطر تدقيق كاملًا دون إعادة اشتقاق البيانات الوصفية. ولأن Adler-32 ليس مقاومًا للتصادم ولا مفتاحًا، عامله كفحص سريع للسلامة أو التأطير لا كإثبات أصالة؛ فضّل ملخصات عائلة SHA عندما تكون نية البحث تجزئةً تشفيرية لا مجموع تحقق متدحرج بأسلوب zlib.
تُرمَّز السلسلة بصيغة UTF-8 قبل حلقة Adler، فتسهم الأحرف متعددة البايت بكل وحدة ترميز كما يفعل ضاغط يستقبل نفس تدفق UTF-8. تجهيز آخر: Hello يعطي كلمة hex مستقرة وحتمية يمكن تثبيتها في الاختبارات. تُرفض المدخلات الفارغة عمدًا بدل إعادة القيمة النظرية للرسالة الفارغة صفر صفر صفر صفر صفر صفر صفر واحد، حتى تميّز تجربة المنتج والمصححات الآلية الإجابات المفقودة عن مجموع تحقق حقيقي.
ثبّت مسار نجاح وخطأ إدخال فارغ في التكامل المستمر حتى لا تُشحن تغييرات عرضية في المقاس أو التهيئة دون اكتشاف. تُحذف الحقول الاختيارية الفارغة بدل إرسالها كقيمة null، وفق عقد العارض التصريحي لنماذج ويب نظيفة.
أين يفيد مجموع تحقق Adler-32 فعلًا
يستخدم مؤلفو الضغط وطلاب zlib حاسبة مجموع تحقق Adler-32 للتحقق من جزئيي A وB المحسوبَين يدويًا مقابل تعريف RFC 1950 دون كتابة حلقة جمع بمقاس في كل لغة. تحتاج منصات التعليم وإضافات LMS إلى وسيط حتمي يرفض الإدخال الفارغ بدل إعادة واحد للرسالة الفارغة، حتى تميّز المصححات الآلية الإجابات المفقودة عن مجموع تحقق حقيقي. تستفيد مواقع المحتوى التي تترتب على Adler-32 checksum أو حاسبة Adler32 من أداة حية يتطابق مسارها المجاني بايتًا ببايت مع مسار الأتمتة المدفوع على نفس الوحدة النقية.
لا تستهلك إخفاقات التحقق الرصيد بعد الرفض. اقرنها بصفحات CRC-32 أو التجزئة التشفيرية فقط عندما تتجاوز نية البحث فحص مجموعَين بأسلوب zlib — وأبقِ هذه الصفحة مركّزة على Adler-32 حتى تظل نية تحسين محركات البحث حادة ولا تلتهم صفحات CRC-8 أو SHA-256.
حالات الاستخدام
عروض الجمع بمقاس في الصف
يعرض المعلمون قيمة التحقق الكلاسيكية لكلمة Wikipedia ويتيحون للطلاب إعادة حساب سلاسل قصيرة أخرى دون تثبيت مكتبة ضغط.
تجهيزات CI لمساعدات السلامة
تثبت خطوط الأنابيب مخرجات hex حتمية لAdler-32 وخطأ الإدخال الفارغ حتى تفشل فورًا أي تغييرات عرضية في المقاس أو التهيئة.
الأسئلة الشائعة
كيف أحسب مجموع تحقق Adler-32 لنص؟
ترمّز الواجهة السلسلة بصيغة UTF-8، وتشغّل Adler-32 كما عرّفه zlib وRFC 1950، وتعيد القيمة بثلاثين واثنين بتًا كثماني أرقام hex صغيرة في result وadler32 وhex.
ما معلمات Adler-32 التي تستخدمها هذه الأداة؟
ملف zlib القياسي: المقاس 65521، A يبدأ من 1، B يبدأ من 0، ومجموع التحقق يساوي (B مزاحًا 16 إلى اليسار) أو A. التحقق الموثق لكلمة Wikipedia بصيغة ASCII هو 11e60398.
ماذا يحدث إذا كان النص فارغًا؟
سلسلة غير فارغة مطلوبة؛ ولا تُعامل المدخلات الفارغة كمجموع تحقق ناجح بقيمة 00000001.
هل Adler-32 تجزئة تشفيرية؟
لا. Adler-32 فحص سلامة سريع بثلاثين واثنين بتًا يستخدمه zlib. استخدم SHA-256 أو ما شابه عندما تحتاج مقاومة تصادم أو مصادقة.
لماذا يتغير المجموع مع الحروف العربية أو الرموز التعبيرية؟
لأن النص يتحول إلى بايتات UTF-8 قبل الجمع، والحروف العربية والرموز التعبيرية يشغل كل منها أكثر من بايت واحد. ويُحتسب كل بايت منها، تمامًا كما يراه برنامج الضغط عند استلام النص نفسه بترميز UTF-8.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/adler32 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Wikipedia"}'const res = await fetch("https://api.kit.forhosting.com/enc/adler32", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Wikipedia"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/adler32",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Wikipedia"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/adler32", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Wikipedia"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Wikipedia"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/adler32", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Wikipedia"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.adler32",
"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 المدفوعة مسبقًا في وحدة نقية واحدة، لذا تتفق تمارين الفصل وخطوط الإنتاج دائمًا على كلمة hex نفسها للسلسلة ذاتها.
عقد الإدخال وأخطاء السلسلة الفارغة وشكل استجابة JSON
أرسل جسم JSON بحقل سلسلة مطلوب واحد اسمه text: أي تسلسل غير فارغ من الأحرف تريد حساب مجموعه. تُقبل الأسماء البديلة input وvalue وs وdata وmessage وpayload لنفس الحقل حتى تبقى هياكل SDK ونماذج الويب مرنة. غياب text أو قيمة ليست سلسلة أو سلسلة فارغة تفشل مع invalid_input مع رسالة واضحة بأن سلسلة غير فارغة مطلوبة؛ ولا تُفوتر هذه الإخفاقات على واجهة API المدفوعة مسبقًا. عند النجاح يتضمن الجسم result وadler32 وhex بنفس مجموع التحقق الست عشري ذي الثماني أرقام الصغيرة؛ وdecimal للعدد بلا إشارة بثلاثين واثنين بتًا؛ وa وb للجزئيين النهائيين ذي الست عشرة بتة السفلى والعليا؛ وalgorithm ثابتًا على Adler-32؛ وinput_bytes مساويًا لطول UTF-8؛ وtext يعيد الإدخال؛ وmessage يلخص عدد البايتات ونتيجة hex. تجهيز كلاسيكي: text يساوي Wikipedia يعطي adler32 أحد عشر e ستة صفر ثلاثة تسعة ثمانية مع input_bytes تسعة.
أين تفيد واجهة API لمجموع تحقق Adler-32 وكيف يعمل التسعير
تقارن أدلة الدعم مقطورةً مبلّغًا عنها من تدفق مضغوط أو سجل جهاز مع Adler-32 لسلسلة الحمولة التي يعيدون كتابتها في الأداة المجانية بالمتصفح. استخدم الأداة المجانية في المتصفح للفحوصات الفردية؛ واستدعِ واجهة KIT المدفوعة مسبقًا من الخلفيات والدوال بلا خادم ومجموعات SDK عندما تحتاج عقدًا مستقرًا تحت رصيد مع $0.002 لكل عنصر ناجح. أبقِ الحمولات بأحجام نص عادية مناسبة لاستدعاء عنصر في عزل Worker؛ هذه الأداة للسلاسل القصيرة ومقتطفات البروتوكول لا للثنائيات متعددة الميغابايت.
حالات التكامل
فحوصات مقطورة zlib وDEFLATE
تحقق من أن سلسلة الحمولة تنتج مقطورة Adler-32 المتوقعة وفق RFC 1950 قبل مقارنة سجلات التدفقات المضغوطة أو متجهات اختبار الوحدة.
أسئلة تقنية
هل حاسبة مجموع تحقق Adler-32 مجانية؟
تعمل أداة المتصفح مجانًا على جهازك. تستدعي استدعاءات API رصيد KIT المدفوع مسبقًا مع $0.002 لكل عنصر ناجح؛ ولا تُحسب إخفاقات التحقق.