Δημιουργήστε τυχαίους 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 // Remove spaces and convert to uppercase
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Check basic format
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Rearrange and convert letters to numbers
11 const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12 const converted = rearranged.split('').map(char => {
13 if (/[A-Z]/.test(char)) {
14 return (char.charCodeAt(0) - 55).toString();
15 }
16 return char;
17 }).join('');
18
19 // Calculate mod 97
20 let remainder = 0;
21 for (let i = 0; i < converted.length; i++) {
22 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23 }
24
25 return remainder === 1;
26}
27
28// Example usage
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (invalid check digits)
32
1def validate_iban(iban):
2 # Remove spaces and convert to uppercase
3 iban = iban.replace(' ', '').upper()
4
5 # Basic format check
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Move first 4 characters to the end
10 rearranged = iban[4:] + iban[:4]
11
12 # Convert letters to numbers (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 # Check if mod 97 equals 1
21 return int(converted) % 97 == 1
22
23# Example usage
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 (invalid check digits)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Remove spaces and convert to uppercase
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Basic format check
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Move first 4 characters to the end
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Convert letters to numbers
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 // Calculate mod 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 // Add more countries as needed
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Country code ${countryCode} not supported`);
11 }
12
13 // Generate random BBAN based on country pattern
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 // Generate numeric characters
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Generate alphabetic characters
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 // Generate alphanumeric characters
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 // Calculate check digits
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Create initial IBAN with '00' as check digits
55 const initialIban = countryCode + '00' + bban;
56
57 // Rearrange and convert letters to numbers
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 // Calculate 98 minus mod 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// Example usage
77console.log(generateIban('DE')); // Generates a valid German IBAN
78console.log(generateIban('GB')); // Generates a valid UK 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 # Add more countries as needed
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Country code {country_code} not supported")
14
15 # Generate random BBAN based on country format
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': # Numeric
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alphabetic
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alphanumeric
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Calculate check digits
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 # Create string for check digit calculation
40 check_string = bban + country_code + '00'
41
42 # Convert letters to numbers (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 # Calculate 98 minus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Example usage
57print(generate_iban('DE')) # Generates a valid German IBAN
58print(generate_iban('GB')) # Generates a valid UK IBAN
59
Το εργαλείο Δημιουργίας και Επικύρωσης IBAN παρέχει μια απλή αλλά ισχυρή λύση για δοκιμές και εκπαιδευτικούς σκοπούς που σχετίζονται με διεθνείς αναγνωριστικούς αριθμούς τραπεζών. Προσφέροντας τόσο δυνατότητες δημιουργίας όσο και επικύρωσης σε μια φιλική προς το χρήστη διεπαφή, εξαλείφει την ανάγκη για περίπλοκες ρυθμίσεις ή τρίτες ενσωματώσεις.
Είτε αναπτύσσετε χρηματοοικονομικές εφαρμογές, δοκιμάζετε συστήματα πληρωμών ή μαθαίνετε για διεθνή τραπεζικά πρότυπα, αυτό το εργαλείο προσφέρει έναν απλό τρόπο για να εργαστείτε με IBAN. Η ολοκληρωμένη επικύρωση διασφαλίζει ότι όλοι οι παραγόμενοι IBAN είναι δομικά σωστοί και συμμορφώνονται με τα διεθνή πρότυπα.
Δοκιμάστε να δημιουργήσετε ή να επικυρώσετε έναν IBAN τώρα για να βιώσετε τις δυνατότητες του εργαλείου από πρώτο χέρι!
Ανακαλύψτε περισσότερα εργαλεία που μπορεί να είναι χρήσιμα για τη ροή εργασίας σας