אימות תעודת זהות ישראלית בקוד: הבדיקה שכל טופס לידים צריך
חזרה לבלוג
full stack·5 בספטמבר 2026·4 דק' קריאה·מאת יהונתן סעדיה

אימות תעודת זהות ישראלית בקוד: הבדיקה שכל טופס לידים צריך

מספר ת"ז ישראלי בנוי מתשע ספרות עם ספרת ביקורת בשיטת לוהן. איך מחשבים אותה, למה השלמה לאפסים היא התקלה הנפוצה, ולמה זו בדיקת איכות ולא זיהוי.

עיקרי הדברים

  • המספר תמיד תשע ספרות. מספר קצר יותר מושלם באפסים מובילים, וזו התקלה שמפילה כמעט כל מימוש ראשון.
  • המשקלים הם 1,2,1,2,1,2,1,2,1 משמאל לימין. תוצאה גדולה מ-9 מוחלפת בסכום ספרותיה, כלומר פחות 9.
  • מספר תקין מתמטית עדיין יכול להיות של אדם אחר. ספרת ביקורת אינה אימות זהות.
  • הרשות להגנת הפרטיות פרסמה גילוי דעת שלפיו מספר ת"ז הוא מידע שדורש הצדקה לאיסופו, ושיש להעדיף אמצעי זיהוי פוגעניים פחות.
  • אם המספר לא נחוץ לשלב הראשון בתהליך, אל תבקשו אותו בטופס הליד.

מספר תעודת זהות ישראלי הוא תשע ספרות, כשהאחרונה היא ספרת ביקורת המחושבת בשיטת לוהן. מכפילים את הספרות לסירוגין במשקלים 1 ו-2 משמאל לימין, מחליפים כל תוצאה דו-ספרתית בסכום ספרותיה, והסכום הכולל חייב להתחלק ב-10. הבדיקה תופסת שגיאת הקלדה. היא לא מזהה אדם.

איך מחושבת ספרת הביקורת

האלגוריתם הוא וריאנט של לוהן על תשע ספרות, כאשר ספרת הביקורת כלולה בסכום:

  1. הביאו את המספר לתשע ספרות בדיוק, בהשלמת אפסים מצד שמאל.
  2. עברו על הספרות משמאל לימין והכפילו לסירוגין ב-1 ובכפולה 2, החל מ-1 בספרה הראשונה.
  3. אם מכפלה יצאה גדולה מ-9, החסירו ממנה 9. זה זהה לסכימת שתי ספרותיה.
  4. סכמו את תשע התוצאות.
  5. המספר תקין אם ורק אם הסכום מתחלק ב-10 ללא שארית.

דוגמה סינתטית: המספר 123456782, שספרותיו רצות ולכן ברור שאינו של אדם קיים.

ספרה123456782
משקל121212121
מכפלה14385127162
אחרי החסרת 9143853772

הסכום הוא 40, שמתחלק ב-10, ולכן המספר עובר את הבדיקה. שינוי של ספרה אחת, או החלפה בין שתי ספרות סמוכות, ייתפסו כמעט תמיד.

למה השלמה לתשע ספרות היא התקלה הנפוצה ביותר?

מפני שמספרי זהות ותיקים קצרים מתשע ספרות, והממשק מציג אותם בלי האפסים המובילים. משתמש מקליד שמונה ספרות, הקוד רץ על שמונה, המשקלים מתחילים במקום הלא נכון, וכל המספרים הקצרים נדחים כשגויים.

  • הביאו כל קלט ל-padStart(9, '0') לפני החישוב, ולא אחריו.
  • הסירו רווחים ומקפים לפני ההשלמה, לא בסוף התהליך.
  • אחסנו את המספר תמיד באורך תשע, כמחרוזת. שדה מספרי בבסיס הנתונים משמיד את האפס המוביל בשקט.
  • אל תשוו מחרוזות ת"ז בין שתי מערכות בלי לנרמל את שתיהן קודם. זה מקור קלאסי לכפילויות בכרטיסי לקוח.

האם מספר תקין מוכיח שמדובר באדם הזה?

לא, ובזה מתמצה כל ההבדל. ספרת הביקורת בודקת עקביות מתמטית פנימית בלבד. כל אחד יכול לייצר תשע ספרות שעוברות את החישוב תוך שניות, ורוב מספרי הזהות של אנשים אמיתיים אף הם עוברים אותו - זו בדיוק המטרה.

לכן הבדיקה מתאימה לשימוש אחד: להפחית שגיאות הקלדה לפני שנתון נכנס למערכת. היא לא מתאימה לפתיחת חשבון, לשחרור מידע, לזיהוי טלפוני או לכל החלטה שנוגעת באדם. לזה נדרש אימות מול מקור חיצוני, או אמצעי כמו קוד חד-פעמי לטלפון שנרשם מראש.

איפה מריצים את הבדיקה, ומה עושים עם התוצאה

מקוםמה הוא נותןמה הוא לא נותן
דפדפןמשוב מיידי לפני שליחהשום ערבות, אפשר לעקוף אותו
שרתהבדיקה היחידה שנחשבתחוויית משתמש, השגיאה מגיעה מאוחר
בסיס הנתוניםנרמול ואורך אחידאינו יודע מה נכון עסקית
מקור חיצוניאימות אמיתי מול רשומהמצריך הרשאה ובסיס חוקי

הכלל הפשוט: הדפדפן בשביל הנוחות, השרת בשביל האמת. שגיאת ולידציה בטופס ליד צריכה להיות אזהרה רכה שמאפשרת המשך, ולא חסימה - טופס שחוסם ליד בגלל ספרה אחת מוחק פנייה שמחלקת המכירות הייתה סוגרת בשיחה.

נרמול, כפילויות ונתוני בדיקה

הבדיקה עצמה היא חלק קטן מהעבודה. רוב התקלות שמגיעות אחר כך נובעות מכך שאותו מספר נשמר בשלוש צורות שונות בשלוש מערכות.

  • נרמלו לפני ההשוואה ולא אחריה: הסרת רווחים ומקפים, ואז השלמה לתשע ספרות. שתי הפעולות בסדר הזה בלבד.
  • השוו לפי הערך המנורמל כשמאחדים ליד עם לקוח קיים. השוואה על הקלט הגולמי מייצרת שני כרטיסים לאותו אדם.
  • אחסנו את הערך המנורמל בשדה נפרד מהקלט המקורי. כשמישהו יטען שהוקלד נכון, תוכלו להראות מה נשלח בפועל.
  • אל תשתמשו במספר כמפתח ראשי. אנשים מקלידים אותו לא נכון, ומספר ראשי שמשתנה שובר קשרים.
  • לבדיקות אוטומטיות, ייצרו מספרים סינתטיים תקינים בקוד במקום להעתיק מספרים אמיתיים לסביבת פיתוח.

השורה האחרונה חשובה מכפי שהיא נשמעת. מספר זהות אמיתי שהודבק לקובץ בדיקה מגיע בסופו של דבר לגיט, ללוגים ולסביבות שלא נועדו להחזיק אותו.

מה לאסוף, ומה עדיף לא לאסוף

הרשות להגנת הפרטיות פרסמה גילוי דעת בנושא איסוף מספרי תעודות זהות וצילומי תעודות זהות, שבו היא מציינת כי מספר ת"ז הוא מידע ייחודי המשמש כמפתח למידע נוסף על אדם, וכי יש לאסוף אותו רק כשהדבר נדרש, ולהעדיף אמצעי זיהוי שפגיעתם בפרטיות פחותה.

  • אל תבקשו ת"ז בשלב הליד אם היא נחוצה רק בשלב החוזה.
  • אם היא נחוצה, הסבירו בטופס למה, במשפט אחד.
  • הציגו במסכים פנימיים ערך מוסתר חלקית, ולא את המספר המלא.
  • אל תשלחו ת"ז בפרמטר שאילתה בכתובת ולא בגוף הודעה שנשמרת בלוגים.
  • הגדירו מדיניות מחיקה. ליד שלא הפך ללקוח לא צריך להחזיק מזהה כזה לנצח.

זהו תיאור טכני של מנגנון בדיקה ושל מסמך רשמי שפורסם, ולא ייעוץ משפטי. את הדרישות המחייבות יש לבחון מול המקור הרשמי.

קשור: עיצוב טפסים שממירים, ניתוב לידים אוטומטי, אימות נתוני רכב ציבוריים בישראל.

מקורות

#Israeli ID#validation#lead forms#Luhn algorithm#privacy#רגולציה

שאלות נפוצות

האם אלגוריתם ספרת הביקורת הוא סוד?

לא. מדובר בווריאנט מוכר וגלוי של אלגוריתם לוהן, שמופיע בספרות ובכלים ציבוריים רבים. אין בו שום מידע על נושא התעודה, והוא לא מאפשר לגזור מספרים תקפים של אנשים קיימים יותר משמאפשרת כל נוסחת ביקורת אחרת.

מה עושים כשמשתמש מקליד מספר שנכשל בבדיקה?

מציגים הודעה שמכוונת לשדה ומאפשרת לתקן, ולא חוסמים את שליחת הטופס. בטופס ליד עדיף לקבל את הפנייה עם סימון "מספר לא תקין" ולתת לאיש המכירות לתקן בשיחה, מאשר לאבד לקוח פוטנציאלי בגלל ספרה שהוקלדה לא נכון.

האם אפשר להשתמש באותה בדיקה למספר ח"פ של חברה?

לא בהכרח, וזו הנחה שכדאי לא לעשות. מזהי תאגידים בישראל הם מרחב מספרים נפרד עם כללים משלו. אם המערכת מקבלת גם עוסק וגם חברה, צריך שדה סוג ישות ובדיקה נפרדת לכל אחד, ולא נוסחה אחת לשניהם.

האם מותר לשמור את המספר בבסיס הנתונים?

זו שאלה של הצדקה ושל מזעור, לא של יכולת טכנית. גילוי הדעת של הרשות להגנת הפרטיות מדגיש שיש לאסוף מספר ת"ז רק כשנדרש. מבחינה טכנית, אם שומרים, שומרים כמחרוזת באורך תשע, עם הרשאות גישה מצומצמות ומדיניות מחיקה מוגדרת.

להמשך קריאה

שירות רלוונטי

מערכת לניהול לידים

לתפוס כל פנייה, לנתב, לעקוב, ולראות איזה מקור מחזיר.

מידע נוסף →←

על הכותב

יהונתן סעדיה

מפתח פרילנסר לאוטומציה, אתרים ו-MVP

אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.

בוא נעבוד יחד

יש לך פרויקט דומה?

ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.