יש חוקיות למס' דרכון?
-
מישהו מכיר אם יש חוקיות למס' דרכון כמו שיש לת.ז.?
גוגל לא מוכן לומר לי.....באותו נושא. האם יש חוק / סדר בנושא של מס' ת.ז. וירטואלי ישראלי מול כל מספר דרכון?
לדוגמא:
כאן
https://www.ims.tau.ac.il/md/rishum/Calc_Passport.aspx?winmode=1
מצאתי מחשבון שממיר כל מספר דרכון לת.ז. ישראלית וירטואלית.אני יודע שמשרד הרווחה ומשרד הכלכלה מקצים מס' וירטואלי כשיש ילד במעונות/משפחתונים עם דרכון. (זה לפחות מה שאני רואה בממשקים שלי מולם)
השאלה אם יש לזה חוקיות/אלגוריתם? או שכל גוף עושה מה שבא לו.....תודה
פורסם במקור בפורום CODE613 ב27/10/2017 12:44 (+03:00)
-
א. כן יש, ראה פה http://www.highprogrammer.com/alan/numbers/mrp.html#checkdigit ובאמת משום מה האינטרנט דל מאוד בדוגמאות על זה. אם מספיק לך רק תבנית רגקס אז ודאי שיש, חפש regex passport.
ב. אני בטוח שאין שום קשר בין מס' זהות לדרכון. הקישור שהבאת סתם עושה קומבינציה של מספרים שמבוססת על מס' הדרכון כדי ליצור בכאלו מס זהות שהדרישה היחידה ממנו הוא שזה יהיה בתוקף.
הנה הקוד הרלוונטי משמה (https://www.ims.tau.ac.il/IncNet/V4/TauMajor.js?ver=000)function convertPassportToIdno(passport) {//convert passport no. to idno if (passport.length < 7) { passport = padstr(passport, 7, '0', 'left'); } var ret_idno = '9'; s_passport = passport.substr(passport.length - 7, 7); for (var i = 0; i < 7; i++) { f_char = s_passport.substr(i, 1); if (f_char < '0' || f_char > '9') { new_ascii = 9; ascii_ch = f_char.charCodeAt(0); if (ascii_ch >= 65 && ascii_ch <= 90) { new_ascii = ascii_ch - 64; } if (ascii_ch >= 97 && ascii_ch <= 122) { new_ascii = ascii_ch - 96; } new_ascii = (new_ascii % 10) + 48 if (new_ascii < 48 || new_ascii > 57) { new_ascii = 57; } f_char = String.fromCharCode(new_ascii); } ret_idno += f_char; } f_char = chkIdNoBikoret(ret_idno); ret_idno += f_char; return ret_idno; } function chkIdNoBikoret(id) {//calculates id no. sifrat bikoret var mult="12121212"; var gtotal=0; for(var i=0;i<8;i++) { stotal=parseInt(id.charAt(i),10) * parseInt(mult.charAt(i),10); if(stotal > 9) { tot=stotal.toString(); stotal=parseInt(tot.charAt(0),10) + parseInt(tot.charAt(1),10); } gtotal=gtotal+stotal; } tot=gtotal.toString(); sbik=10 - tot.charAt(tot.length-1); if(sbik > 9){sbik=0} return sbik.toString(); }
פורסם במקור בפורום CODE613 ב27/10/2017 13:51 (+03:00)
-
תודה דוד
עוד משהו, אין לי דרכון ולכן אני לא יודע......
מספר דרכון נשאר לכל החיים? או שהוא משתנה? (באינטרנט ראיתי שכתוב שזה משתנה, אבל אם כך, מה עושים כל מי שמסתמך על זה?)
במילים אחרות, כמה אני יכול לסמוך עליו כמו על תעודת זהות?פורסם במקור בפורום CODE613 ב27/10/2017 14:19 (+03:00)