ماشینحساب چکسام
جزئیات فنی
ماشینحساب چِکسام چگونه کار میکند
این ابزار چه کاری انجام میدهد
ماشینحساب چِکسام، چِکسامهای غیررمزنگاری را برای راستیآزمایی یکپارچگی داده محاسبه میکند و از الگوریتمهای CRC-16، CRC-24، CRC-32، Adler-32 و Luhn پشتیبانی میکند. هم متن ساده و هم ورودی بایت خام بهصورت هگزادسیمال را میپذیرد و به شما امکان میدهد چِکسامها را در برابر پروتکلهای شبکه، قالبهای فایل و شمارههای شناسایی بررسی کنید. نتایج برای مقایسهٔ آسان با اسناد مشخصات، بهصورت هگزادسیمال و دهدهی نمایش داده میشوند.
موارد استفادهٔ رایج برای توسعهدهندگان
توسعهدهندگان از ماشینحسابهای CRC هنگام دیباگ پروتکلهای شبکه (Ethernet از CRC-32 استفاده میکند، PPP از CRC-16)، بررسی یکپارچگی فایل در قالبهای آرشیو مانند ZIP و PNG، یا اعتبارسنجی شمارههای شناسایی با Luhn (کارتهای اعتباری، IMEI) استفاده میکنند. مهندسان امبدد از این ابزار برای اطمینان از اینکه پیادهسازیهای CRC با خروجی مورد انتظار مطابقت دارند، پیش از فلش کردن firmware یا تست فریمهای ارتباط سریال استفاده میکنند.
قالبها، نوعها یا گونههای داده
CRC-16 (CCITT) یک چِکسام 16 بیتی تولید میکند که در XMODEM، Bluetooth و USB استفاده میشود. CRC-32 (ISO 3720) یک مقدار 32 بیتی تولید میکند که در Ethernet، ZIP و PNG استفاده میشود. Adler-32 یک جایگزین سریعتر برای CRC-32 است که در zlib بهکار میرود. Luhn mod-10 یک CRC نیست، بلکه الگوریتم رقمِ کنترلی است که برای اعتبارسنجی شماره کارتهای اعتباری، کدهای ISIN و شمارههای IMEI استفاده میشود. حالت ورودی هگز به شما اجازه میدهد توالیهای بایت خام را برای راستیآزمایی در سطح پروتکل وارد کنید.
دامهای رایج و حالتهای لبهای
الگوریتمهای CRC گونههای زیادی از چندجملهای و مقداردهی اولیه دارند — CRC-16-CCITT با CRC-16-IBM متفاوت است، بنابراین همیشه تأیید کنید پروتکل کدام گونه را انتظار دارد. چِکسامها خرابی تصادفی را تشخیص میدهند اما هیچ امنیتی در برابر دستکاری عمدی فراهم نمیکنند؛ برای این منظور از هشهای رمزنگاری استفاده کنید. هنگام استفاده از حالت ورودی هگز، مطمئن شوید بایتها بدون جداکننده یا با قالببندی یکسان وارد شدهاند، زیرا یک نیمبایت اضافی (nibble) همهٔ بایتهای بعدی را جابهجا میکند.
چه زمانی از این ابزار استفاده کنیم در برابر کُد
از این ابزار مرورگری برای بررسیهای سریع و موردی هنگام دیباگ کردن فریمهای پروتکل، اعتبارسنجی یک شماره کارت اعتباری با الگوریتم لوهان، یا مقایسه خروجی CRC با یک مشخصات فنی استفاده کنید. برای راستیآزمایی انبوه فایلها، پایپلاینهای CI، یا بیلدهای فریمور امبدد، از کتابخانههای CRC بومیِ زبان (zlib.crc32 در پایتون، پکیجهای crc مبتنی بر Buffer در Node) استفاده کنید که میتوانند استریمها را پردازش کنند و در گردشکارهای خودکار یکپارچه شوند.