من تونستم این مطالب رو گردآوری کنم . ببینید خوبه ؟ اگه جاییش رو میشه بهتر توضیح بدید ممنون میشم که بگید .
(CRC (Cyclic redundancy check چیست ؟
A cyclic redundancy check (CRC) is a type of hash function used to produce a checksum – a small, fixed number of bits – against a block of data, such as a packet of network traffic or a block of a computer file. The checksum is used to detect errors after transmission or storage. A CRC is computed and appended before transmission or storage, and verified afterwards by the recipient to confirm that no changes occurred on transit. CRCs are popular because they are simple to implement in binary hardware, are easy to analyze mathematically, and are particularly good at detecting common errors caused by noise in transmission channels.
A hash function (or hash algorithm) is a reproducible method of turning data (usually a message or a file) into a number suitable to be handled by a computer. These functions provide a way of creating a small digital "fingerprint" from any kind of data. The function chops and mixes (i.e., substitutes or transposes) the data to create the fingerprint, often called a hash value. The hash value is commonly represented as a short string of random-looking letters and numbers (Binary data written in hexadecimal notation). A good hash function is one that yields few hash collisions in expected input domains. In hash tables and data processing, collisions inhibit the distinguishing of data, making records more costly to find.
A checksum is a form of redundancy check, a very simple measure for protecting the integrity of data by detecting errors in data that is sent through space (telecommunications) or time (storage). It works by adding up the basic components of a message, typically the asserted bits, and storing the resulting value. Later, anyone can perform the same operation on the data, compare the result to the authentic Checksum , and (assuming that the sums match) conclude that the message was probably not corrupted.
A computer file is a piece of arbitrary information, or resources for storing information, that is available to a computer program and is usually based on some kind of durable storage
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
معنی لغوی"Cyclic redundancy check" چک کردن چرخشی افزونگی است .
بطور کلی یک CRC یک نوع Hash Function استفاده شده برای تولید یک Checksum است .
یک Hash Function یک روش قابل تولید داده های چرخشی (معمولاً یک پیغام یا یک پرونده) به سوی یک شماره ی مناسب توسط یک رایانه کنترل شده است . این توابع یک راه ایجاد اثر انگشت کوچک دیجیتالی از هر نوع داده را محیا می کنند .
یک پرونده رایانه یک تکه از اطلاعات اختیاری است ، یا منابعی است برای ذخیره کردن اطلاعات ، که قابل دسترسی به یک برنامه رایانه ای است و معمولاً نوعی مبنی بر ذخیره سازی بادوام است .
وقتیکه فرضاً یک Pocket داده می خواهد از طریق شبکه منتقل شود ، یک Checksum از این بسته تهیه می شود . این Checksum در واقع یکسری بیت ثابت و کوچک است که بر اساس قانون خاصی از روی همان Pocket محاسبه می شود . فرض کنید که قانونمان این باشد که Checksum باید با جمع بیتهای اول و دهم و صدم آن Pocket برار باشد .
حال بعد از انتقال باید دوباره همین محاسبه را انجام دهیم ، اگر Checksum برابر با مقدار اولیه نبود ، یعنی خطایی در حین انتقال رخ داده است . معلوم است که این روش ساده و راحت است اما بخاطر همین سادگی نقاط ضعفی هم دارد ( مثلاً اگر خطا چند بار اتفاق بیافتد ، ممکن است مقدار Checksum درست به نظر بیاید اما در واقع بسته بدرستی منتقل نشده است )