צור מספרי IBAN אקראיים התואמים לפורמט או אמת מספרים קיימים עם הכלי הפשוט שלנו. מושלם לבדוק יישומים פיננסיים, תוכנות בנקאות ומטרות חינוכיות.
כלי ליצירת ואימות מספרי חשבון בנק בינלאומיים (IBAN) הוא כלי מקיף שנועד למטרות בדיקה ואימות ביישומים פיננסיים, תוכנות בנקאיות והקשרים חינוכיים. יישום ידידותי למשתמש זה מציע שתי תכונות חיוניות: יצירת IBANים אקראיים אך תואמים לפורמט ואימות של שלמות המבנה של IBANים שהוזנו על ידי המשתמש. בין אם אתה מפתח בודק תוכנה פיננסית, מומחה QA מאמת יישומים בנקאיים, או מחנך המסביר על תקנים בנקאיים בינלאומיים, כלי זה מספק פתרון פשוט מבלי לדרוש תצורות מורכבות או אינטגרציות עם צדדים שלישיים.
IBANים (מספרי חשבון בנק בינלאומיים) הם מזהים סטנדרטיים של חשבונות המשמשים ברחבי העולם כדי להקל על עסקאות חוצות גבולות ולהפחית טעויות בהעברות כספים בינלאומיות. כל IBAN מורכב מקוד מדינה, ספרות בדיקה ומספר חשבון בנק בסיסי (BBAN) שעוקב אחרי פורמטים ספציפיים למדינה. הכלי שלנו תומך בפורמטים של מדינות רבות ומוודא שכל IBAN שנוצר עובר את אלגוריתם האימות MOD 97 המפורט בסטנדרט ISO 13616.
IBAN מורכב עד 34 תווים אלפאנומריים, אם כי האורך המדויק משתנה לפי מדינה. המבנה הסטנדרטי כולל:
לדוגמה, IBAN גרמני עוקב אחרי המבנה DE2!n8!n10!n
שבו:
DE
הוא קוד המדינה2!n
מייצג שתי ספרות מספריות8!n
מייצג קוד בנק בן שמונה ספרות10!n
מייצג מספר חשבון בן עשר ספרותמדינות שונות יש להן פורמטים שונים ל-BBAN, מה שמוביל לאורכי IBAN משתנים:
מדינה | אורך | מבנה | דוגמה |
---|---|---|---|
גרמניה (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
הממלכה המאוחדת (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
צרפת (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
ספרד (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
איטליה (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
תהליך האימות של IBAN משתמש באלגוריתם MOD 97 כפי שמפורט בסטנדרט ISO 7064. כך זה עובד:
מתמטית, זה מיוצג כ:
המאמת שלנו מיישמת אלגוריתם זה כדי לאמת את שלמות המבנה של כל IBAN שהוזן על ידי המשתמשים.
יוצר ה-IBAN יוצר IBANים אקראיים אך תקפים למטרות בדיקה. תכונות עיקריות כוללות:
היוצר יוצר IBANים על ידי:
מאמת ה-IBAN בודק את שלמות המבנה של IBANים שהוזנו על ידי המשתמש. תכונות עיקריות כוללות:
המאמת מבצע מספר בדיקות:
כלי ייצור ואימות ה-IBAN משרת מטרות רבות בתחומים שונים:
בעוד שכלי ייצור ואימות ה-IBAN שלנו מציע חוויה חלקה למטרות בדיקה, ישנן גישות חלופיות לשקול:
הכלי שלנו גשר בין חלופות אלו על ידי מתן ממשק פשוט ונגיש עבור יצירה ואימות מבלי לדרוש אינטגרציה טכנית או מנויים בתשלום.
IBAN (מספר חשבון בנק בינלאומי) הוא מערכת מספרית בינלאומית סטנדרטית שנועדה לזהות חשבונות בנק ברחבי גבולות לאומיים. היא הוקמה על ידי הארגון הבינלאומי לתקינה (ISO) כדי להקל על עסקאות בינלאומיות ללא טעויות.
יוצר ה-IBAN יוצר IBANים תקפים מבנית שעוברים את אלגוריתם בדיקת MOD 97 כפי שמפורט בסטנדרט ISO 13616. בעוד שה-IBANים שנוצרים הם תקפים מתמטית, הם אקראיים ואינם מקושרים לחשבונות בנק אמיתיים, מה שהופך אותם למושלמים לבדיקה אך לא לעסקאות אמיתיות.
הכלי תומך כיום בפורמטים של IBAN עבור גרמניה, הממלכה המאוחדת, צרפת, ספרד, איטליה, הולנד, שווייץ, אוסטריה, בלגיה ופולין. אלה מכסים את הפורמטים הנפוצים ביותר של IBAN באירופה.
לא. ה-IBANים שנוצרים על ידי יוצר זה הם תקפים מבנית אך אקראיים. הם אינם מקושרים לחשבונות בנק אמיתיים ויש להשתמש בהם רק למטרות בדיקה, חינוך או הדגמה.
המאמת בודק מספר היבטים של IBAN:
לא. בעוד ש-IBANים מוצגים לעיתים קרובות עם רווחים לצורך קריאות (בדרך כלל בקבוצות של ארבעה תווים), הרווחים מתעלמים במהלך האימות. הכלי שלנו מטפל ב-IBANים מעוצבים ולא מעוצבים.
לא. כלי זה פועל לחלוטין בדפדפן שלך. אין נתוני IBAN שנשלחים לשרת כלשהו, נשמרים או משותפים עם צדדים שלישיים. הנתונים שלך נשארים פרטיים ומאובטחים.
נכון לעכשיו, הכלי מאמת רק IBANים מהמדינות הנתמכות ברשימה הנפתחת. אם אתה זקוק לאימות עבור מדינות נוספות, אנא יידע אותנו דרך טופס המשוב.
IBAN עשוי להיכשל באימות ממספר סיבות:
אנו מקבלים בברכה משוב לשיפור הכלי. אנא השתמש בטופס המשוב הנגיש דרך הקישור בתחתית העמוד כדי לדווח על בעיות או להציע שיפוטים.
למפתחים המעוניינים ליישם אימות ויצירת IBANים ביישומים שלהם, הנה דוגמאות קוד בשפות תכנות שונות:
1function validateIban(iban) {
2 // הסר רווחים והמר לאותיות גדולות
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // בדוק פורמט בסיסי
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // העבר את ארבעת התווים הראשונים לסוף ה-IBAN
11 const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12 // המרת אותיות למספרים
13 const converted = rearranged.split('').map(char => {
14 if (/[A-Z]/.test(char)) {
15 return (char.charCodeAt(0) - 55).toString();
16 }
17 return char;
18 }).join('');
19
20 // חישוב מודולו 97
21 let remainder = 0;
22 for (let i = 0; i < converted.length; i++) {
23 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
24 }
25
26 return remainder === 1;
27}
28
29// דוגמת שימוש
30console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
31console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
32console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (ספרות בדיקה לא תקפות)
33
1def validate_iban(iban):
2 # הסר רווחים והמר לאותיות גדולות
3 iban = iban.replace(' ', '').upper()
4
5 # בדיקת פורמט בסיסי
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # העבר את ארבעת התווים הראשונים לסוף
10 rearranged = iban[4:] + iban[:4]
11
12 # המרת אותיות למספרים (A=10, B=11, ..., Z=35)
13 converted = ''
14 for char in rearranged:
15 if char.isalpha():
16 converted += str(ord(char) - 55)
17 else:
18 converted += char
19
20 # בדוק אם מודול 97 שווה ל-1
21 return int(converted) % 97 == 1
22
23# דוגמת שימוש
24print(validate_iban('DE89 3704 0044 0532 0130 00')) # True
25print(validate_iban('GB29 NWBK 6016 1331 9268 19')) # True
26print(validate_iban('DE89 3704 0044 0532 0130 01')) # False (ספרות בדיקה לא תקפות)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // הסר רווחים והמר לאותיות גדולות
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // בדיקת פורמט בסיסי
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // העבר את ארבעת התווים הראשונים לסוף
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // המרת אותיות למספרים
15 StringBuilder converted = new StringBuilder();
16 for (char c : rearranged.toCharArray()) {
17 if (Character.isLetter(c)) {
18 converted.append(c - 'A' + 10);
19 } else {
20 converted.append(c);
21 }
22 }
23
24 // חישוב מודול 97
25 BigInteger numeric = new BigInteger(converted.toString());
26 return numeric.mod(BigInteger.valueOf(97)).intValue() == 1;
27 }
28
29 public static void main(String[] args) {
30 System.out.println(validateIban("DE89 3704 0044 0532 0130 00")); // true
31 System.out.println(validateIban("GB29 NWBK 6016 1331 9268 19")); // true
32 System.out.println(validateIban("DE89 3704 0044 0532 0130 01")); // false
33 }
34}
35
1function generateIban(countryCode) {
2 const countryFormats = {
3 'DE': { length: 22, bbanPattern: '8n10n' },
4 'GB': { length: 22, bbanPattern: '4a6n8n' },
5 'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6 // הוסף מדינות נוספות לפי הצורך
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`קוד מדינה ${countryCode} אינו נתמך`);
11 }
12
13 // צור BBAN אקראי על בסיס פורמט המדינה
14 let bban = '';
15 const pattern = countryFormats[countryCode].bbanPattern;
16 let i = 0;
17
18 while (i < pattern.length) {
19 const count = parseInt(pattern.substring(i + 1), 10);
20 const type = pattern[i];
21
22 if (type === 'n') {
23 // צור תווים מספריים
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // צור תווים אלפאביים
29 for (let j = 0; j < count; j++) {
30 bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31 }
32 } else if (type === 'c') {
33 // צור תווים אלפאנומריים
34 for (let j = 0; j < count; j++) {
35 const isLetter = Math.random() > 0.5;
36 if (isLetter) {
37 bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38 } else {
39 bban += Math.floor(Math.random() * 10);
40 }
41 }
42 }
43
44 i += 2;
45 }
46
47 // חישוב ספרות בדיקה
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // צור IBAN ראשוני עם '00' כספרות בדיקה
55 const initialIban = countryCode + '00' + bban;
56
57 // העבר והמר אותיות למספרים
58 const rearranged = bban + countryCode + '00';
59 const converted = rearranged.split('').map(char => {
60 if (/[A-Z]/.test(char)) {
61 return (char.charCodeAt(0) - 55).toString();
62 }
63 return char;
64 }).join('');
65
66 // חישוב 98 פחות מודול 97
67 let remainder = 0;
68 for (let i = 0; i < converted.length; i++) {
69 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70 }
71
72 const checkDigits = (98 - remainder).toString().padStart(2, '0');
73 return checkDigits;
74}
75
76// דוגמת שימוש
77console.log(generateIban('DE')); // יוצר IBAN גרמני תקף
78console.log(generateIban('GB')); // יוצר IBAN בריטי תקף
79
1import random
2import string
3
4def generate_iban(country_code):
5 country_formats = {
6 'DE': {'length': 22, 'bban_format': '8n10n'},
7 'GB': {'length': 22, 'bban_format': '4a6n8n'},
8 'FR': {'length': 27, 'bban_format': '5n5n11c2n'}
9 # הוסף מדינות נוספות לפי הצורך
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"קוד מדינה {country_code} אינו נתמך")
14
15 # צור BBAN אקראי על בסיס פורמט המדינה
16 bban = ''
17 format_str = country_formats[country_code]['bban_format']
18 i = 0
19
20 while i < len(format_str):
21 count = int(''.join(c for c in format_str[i+1:] if c.isdigit()))
22 type_char = format_str[i]
23
24 if type_char == 'n': # מספרי
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # אלפאביים
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # אלפאנומריים
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # חישוב ספרות בדיקה
34 check_digits = calculate_check_digits(country_code, bban)
35
36 return country_code + check_digits + bban
37
38def calculate_check_digits(country_code, bban):
39 # צור מחרוזת לחישוב ספרות בדיקה
40 check_string = bban + country_code + '00'
41
42 # המרת אותיות למספרים (A=10, B=11, ..., Z=35)
43 numeric = ''
44 for char in check_string:
45 if char.isalpha():
46 numeric += str(ord(char.upper()) - 55)
47 else:
48 numeric += char
49
50 # חישוב 98 פחות מודול 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# דוגמת שימוש
57print(generate_iban('DE')) # יוצר IBAN גרמני תקף
58print(generate_iban('GB')) # יוצר IBAN בריטי תקף
59
כלי ייצור ואימות ה-IBAN מספק פתרון פשוט אך רב עוצמה למטרות בדיקה וחינוך הקשורות למזהים בנקאיים בינלאומיים. על ידי הצעת יכולות גם ליצירה וגם לאימות בממשק ידידותי למשתמש, הוא מבטל את הצורך בתצורות מורכבות או אינטגרציות עם צדדים שלישיים.
בין אם אתה מפתח יישומים פיננסיים, בודק מערכות תשלום או לומד על תקנים בנקאיים בינלאומיים, כלי זה מציע דרך פשוטה לעבוד עם IBANים. האימות המקיף מבטיח שכל ה-IBANים שנוצרים הם תקפים מבנית ועומדים בסטנדרטים בינלאומיים.
נסה ליצור או לאמת IBAN עכשיו כדי לחוות את יכולות הכלי בעצמך!
גלה עוד כלים שעשויים להיות שימושיים עבור זרימת העבודה שלך