الگوریتم لان: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Rezabot (بحث | مشارکت‌ها)
جز ربات: حذف از رده:ویکی‌سازی رباتیک
بدون خلاصۀ ویرایش
خط ۲:
این الگوریتم به وفور استفاده می شود و به منظور یک [[تابع درهم‌ساز رمزنگارانه]] استفاده نمی‌شود. در واقع این روش برای حفاظت در برابر خطاهای تصادفی می باشد نه حملات عمدی. بسیاری از شماره های کارت های اعتباری و شناسه های دولتی از این روش برای متمایز کردن شماره های معتبر از هر جایگشت نا معتبری از اعداد استفاده می شود.
 
== نفاطنقاط قوت و ضعف ==
الگوریتم لان همه خطاهای تک رقمی را تشخیص می دهد، و همینطور جابجا شدن دو رقم کنار هم را. ولی جابجایی ۰۹ به ۹۰ و برعکس را نمی‌تواند تشخیص بدهد. و همینطور ۷ تا از ۱۰ تا خطای دوقلو را می تواند تشخیص دهد(این موارد را تشخیص نمی‌دهد: ۲۲ به ۵۵و ۳۳ به ۶۶ یا ۴۴ به ۷۷).
الگوریتم های پیچیده تر مانند الگوریتم [//en.wikipedia.org/w/index.php?title=Verhoeff_algorithm&oldid=446858849 Verhoeff] می توانند خطاهای جابجایی بیشتری را تشخیص دهند. الگوریتم [//en.wikipedia.org/w/index.php?title=Luhn_mod_N_algorithm&oldid=449928878 Luhn mod N] تعمیم این الگوریتم برای رشته های غیر عددی می باشد.
خط ۹:
== توضیح غیر رسمی ==
این فرمول یک عدد را در برابر رقم تطبیق آن درستی یابی می کند، که عموماً به بک شماره حساب پاره ای به منظور تولید شماره حساب کامل اضافه می شود. این شماره حساب باید تست زیر را پاس کند:
# با شروع از اولین رقم سمت راست و حرکت به سمت چپ، یکی در میان رقم های شماره زوج را دو برابر کند.(برای اعداد بزرگتر از 9 مجموع ارقامشان را در نظر بگیرید. مثلا برای 16 داریم: 1+6=7 )
# ارقام اعداد دو برابر شده را با اعدادی که دو برابر نشده اند جمع کند.
# اگر جواب جمع در پیمانه ی ۱۰ صفر شود، این شماره حساب درست می باشد، در غیر این صورت اعتبار ندارد.