Creează IBAN-uri aleatorii conforme cu formatul sau validează cele existente cu instrumentul nostru simplu. Perfect pentru testarea aplicațiilor financiare, software-ului bancar și scopuri educaționale.
Generatorul și Validatorul de Numere de Cont Bancar Internațional (IBAN) este un instrument cuprinzător conceput pentru scopuri de testare și verificare în aplicații financiare, software bancar și contexte educaționale. Această aplicație prietenoasă cu utilizatorul oferă două funcții esențiale: generarea de IBAN-uri aleatorii, dar conforme cu formatul, și validarea integrității structurale a IBAN-urilor introduse de utilizatori. Indiferent dacă ești un dezvoltator care testează software financiar, un specialist QA care verifică aplicații bancare sau un educator care explică standardele bancare internaționale, acest instrument oferă o soluție simplă fără a necesita configurații complexe sau integrarea de terță parte.
IBAN-urile (Numerele de Cont Bancar Internațional) sunt identificatori standardizați ai conturilor utilizate internațional pentru a facilita tranzacțiile transfrontaliere și a reduce erorile în transferurile internaționale de bani. Fiecare IBAN constă dintr-un cod de țară, cifre de control și un număr de cont bancar de bază (BBAN) care urmează formate specifice fiecărei țări. Instrumentul nostru suportă formate din mai multe țări și asigură că toate IBAN-urile generate trec algoritmul de validare MOD 97 specificat în standardul ISO 13616.
Un IBAN constă din până la 34 de caractere alfanumerice, deși lungimea exactă variază în funcție de țară. Structura standard include:
De exemplu, un IBAN german urmează structura DE2!n8!n10!n
unde:
DE
este codul de țară2!n
reprezintă două cifre numerice de control8!n
reprezintă un cod bancar de opt cifre10!n
reprezintă un număr de cont de zece cifreDiferitele țări au formate BBAN diferite, rezultând în lungimi variate ale IBAN-urilor:
Țară | Lungime | Structură | Exemplu |
---|---|---|---|
Germania (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
Regatul Unit (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Franța (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Spania (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Italia (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Procesul de validare IBAN utilizează algoritmul MOD 97 așa cum este specificat în standardul ISO 7064. Iată cum funcționează:
Matematic, aceasta este reprezentată ca:
Validatorul nostru implementează acest algoritm pentru a verifica integritatea structurală a oricărui IBAN introdus de utilizatori.
Generatorul IBAN creează IBAN-uri aleatorii, dar valide, pentru scopuri de testare. Caracteristici cheie includ:
Generatorul creează IBAN-uri prin:
Validatorul IBAN verifică integritatea structurală a IBAN-urilor introduse de utilizatori. Caracteristici cheie includ:
Validatorul efectuează multiple verificări:
Instrumentul Generator și Validator IBAN servește mai multor scopuri în diferite domenii:
Deși instrumentul nostru Generator și Validator IBAN oferă o experiență simplificată pentru scopuri de testare, există abordări alternative de luat în considerare:
Instrumentul nostru face legătura între aceste alternative, oferind o interfață simplă și accesibilă pentru atât generare, cât și validare fără a necesita integrare tehnică sau abonamente plătite.
Un IBAN (Număr de Cont Bancar Internațional) este un sistem internațional de numerotare standardizat dezvoltat pentru a identifica conturile bancare în întreaga lume. A fost stabilit de Organizația Internațională pentru Standardizare (ISO) pentru a facilita tranzacțiile internaționale fără erori.
Generatorul IBAN creează IBAN-uri structurale valide care trec algoritmul de verificare MOD 97 așa cum este specificat în standardul ISO 13616. Deși IBAN-urile generate sunt valide din punct de vedere matematic, ele sunt aleatorii și nu sunt legate de conturi bancare reale, făcându-le perfecte pentru testare, dar nu pentru tranzacții reale.
Instrumentul suportă în prezent formatele IBAN pentru Germania, Regatul Unit, Franța, Spania, Italia, Olanda, Elveția, Austria, Belgia și Polonia. Acestea acoperă cele mai frecvent utilizate formate IBAN în Europa.
Nu. IBAN-urile create de acest generator sunt valide din punct de vedere structural, dar generate aleatoriu. Ele nu sunt conectate la conturi bancare reale și ar trebui folosite doar pentru testare, scopuri educaționale sau demonstrații.
Validatorul verifică mai multe aspecte ale unui IBAN:
Nu. Deși IBAN-urile sunt adesea afișate cu spații pentru lizibilitate (de obicei în grupuri de patru caractere), spațiile sunt ignorate în timpul validării. Instrumentul nostru gestionează atât IBAN-urile formate (cu spații), cât și neformate.
Nu. Acest instrument funcționează complet în browserul tău. Niciunul dintre datele IBAN nu este trimis către un server, stocat sau partajat cu terțe părți. Datele tale rămân private și sigure.
În prezent, instrumentul validează doar IBAN-uri din țările suportate listate în meniul derulant. Dacă ai nevoie de validare pentru țări suplimentare, te rugăm să ne anunți prin formularul de feedback.
Un IBAN ar putea eșua la validare din mai multe motive:
Primim cu plăcere feedback pentru a îmbunătăți instrumentul. Te rugăm să folosești formularul de feedback accesibil prin linkul de la baza paginii pentru a raporta orice probleme sau a sugera îmbunătățiri.
Pentru dezvoltatorii interesați să implementeze validarea și generarea IBAN-urilor în propriile aplicații, iată exemple de cod în diverse limbaje de programare:
1function validateIban(iban) {
2 // Elimină spațiile și convertește în majuscule
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Verificare format de bază
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Rearanjează și convertește literele în numere
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 // Calculează 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// Exemplu de utilizare
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 (cifre de control invalide)
32
1def validate_iban(iban):
2 # Elimină spațiile și convertește în majuscule
3 iban = iban.replace(' ', '').upper()
4
5 # Verificare format de bază
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Mută primele 4 caractere la sfârșit
10 rearranged = iban[4:] + iban[:4]
11
12 # Convertește literele în numere (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 # Verifică dacă mod 97 este egal cu 1
21 return int(converted) % 97 == 1
22
23# Exemplu de utilizare
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 (cifre de control invalide)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Elimină spațiile și convertește în majuscule
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Verificare format de bază
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Mută primele 4 caractere la sfârșit
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Convertește literele în numere
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 // Calculează 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 // Adaugă mai multe țări după cum este necesar
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Codul de țară ${countryCode} nu este suportat`);
11 }
12
13 // Generează BBAN aleatoriu pe baza formatului țării
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 // Generează caractere numerice
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Generează caractere alfabetice
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 // Generează caractere alfanumerice
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 // Calculează cifrele de control
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Creează IBAN inițial cu '00' ca cifre de control
55 const initialIban = countryCode + '00' + bban;
56
57 // Rearanjează și convertește literele în numere
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 // Calculează 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// Exemplu de utilizare
77console.log(generateIban('DE')); // Generează un IBAN german valid
78console.log(generateIban('GB')); // Generează un IBAN britanic valid
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 # Adaugă mai multe țări după cum este necesar
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Codul de țară {country_code} nu este suportat")
14
15 # Generează BBAN aleatoriu pe baza formatului țării
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': # Alfabetic
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanumeric
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Calculează cifrele de control
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 # Creează un șir pentru calculul cifrelor de control
40 check_string = bban + country_code + '00'
41
42 # Convertește literele în numere (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 # Calculează 98 minus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Exemplu de utilizare
57print(generate_iban('DE')) # Generează un IBAN german valid
58print(generate_iban('GB')) # Generează un IBAN britanic valid
59
Instrumentul Generator și Validator IBAN oferă o soluție simplă, dar puternică pentru scopuri de testare și educație legate de identificatorii bancari internaționali. Prin oferirea atât a capacităților de generare, cât și a celor de validare într-o interfață prietenoasă cu utilizatorul, elimină necesitatea configurațiilor complexe sau a integrărilor de terță parte.
Indiferent dacă dezvolți aplicații financiare, testezi sisteme de plată sau înveți despre standardele bancare internaționale, acest instrument oferă o modalitate simplă de a lucra cu IBAN-uri. Validarea cuprinzătoare asigură că toate IBAN-urile generate sunt structurale și conforme cu standardele internaționale.
Începe acum să generezi sau să validezi un IBAN pentru a experimenta capacitățile instrumentului!
Descoperiți mai multe instrumente care ar putea fi utile pentru fluxul dvs. de lucru