Vytvorte náhodné IBANy v súlade s formátom alebo overte existujúce pomocou nášho jednoduchého nástroja. Ideálne na testovanie finančných aplikácií, bankového softvéru a vzdelávacie účely.
Nástroj na generovanie a validáciu medzinárodného čísla bankového účtu (IBAN) je komplexný nástroj navrhnutý na testovanie a overovanie v oblasti finančných aplikácií, bankového softvéru a vzdelávacích kontextov. Táto používateľsky prívetivá aplikácia ponúka dve základné funkcie: generovanie náhodných, ale formátovo súladných IBAN a validáciu štrukturálnej integrity IBAN zadaných používateľom. Či už ste vývojár testujúci finančný softvér, špecialista na QA overujúci bankové aplikácie, alebo pedagóg vysvetľujúci medzinárodné bankové normy, tento nástroj poskytuje jednoduché riešenie bez potreby zložitých konfigurácií alebo integrácií tretích strán.
IBANy (medzinárodné čísla bankových účtov) sú štandardizované identifikátory účtov používané na medzinárodnej úrovni na uľahčenie cezhraničných transakcií a zníženie chýb pri medzinárodných prevodoch peňazí. Každý IBAN pozostáva z kódu krajiny, kontrolných číslic a základného čísla bankového účtu (BBAN), ktoré nasleduje podľa formátov špecifických pre krajinu. Náš nástroj podporuje viacero krajinných formátov a zabezpečuje, že všetky generované IBANy prechádzajú validačným algoritmom MOD 97, ktorý je špecifikovaný v norme ISO 13616.
IBAN pozostáva z maximálne 34 alfanumerických znakov, aj keď presná dĺžka sa líši podľa krajiny. Štandardná štruktúra obsahuje:
Napríklad, nemecký IBAN dodržiava štruktúru DE2!n8!n10!n
, kde:
DE
je kód krajiny2!n
predstavuje dve numerické kontrolné číslice8!n
predstavuje osemmiestny kód banky10!n
predstavuje desiatimiestne číslo účtuRôzne krajiny majú rôzne formáty BBAN, čo vedie k rôznej dĺžke IBAN:
Krajina | Dĺžka | Štruktúra | Príklad |
---|---|---|---|
Nemecko (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
Spojené kráľovstvo (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Francúzsko (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Španielsko (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Taliansko (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Proces validácie IBAN využíva algoritmus MOD 97, ako je špecifikované v norme ISO 7064. Tu je, ako to funguje:
Matematicky je to reprezentované ako:
Náš validátor implementuje tento algoritmus na overenie štrukturálnej integrity akéhokoľvek IBAN zadaného používateľmi.
Generátor IBAN vytvára náhodné, ale platné IBANy na testovacie účely. Hlavné funkcie zahŕňajú:
Generátor vytvára IBANy týmto spôsobom:
Validátor IBAN kontroluje štrukturálnu integritu IBAN zadaných používateľom. Hlavné funkcie zahŕňajú:
Validátor vykonáva viacero kontrol:
Nástroj na generovanie a validáciu IBAN slúži viacerým účelom v rôznych oblastiach:
Aj keď náš nástroj na generovanie a validáciu IBAN ponúka zjednodušenú skúsenosť pre testovacie účely, existujú alternatívne prístupy, ktoré treba zvážiť:
Náš nástroj prekonáva medzery medzi týmito alternatívami tým, že poskytuje jednoduché, prístupné rozhranie pre generovanie aj validáciu bez potreby technickej integrácie alebo platených predplatných.
IBAN (medzinárodné číslo bankového účtu) je štandardizovaný medzinárodný číselný systém vyvinutý na identifikáciu bankových účtov cez národné hranice. Bol zavedený Medzinárodnou organizáciou pre normalizáciu (ISO) na uľahčenie bezchybného medzinárodného transakčného procesu.
Generátor IBAN vytvára štrukturálne platné IBANy, ktoré prechádzajú algoritmom kontrolného čísla MOD 97, ako je špecifikované v norme ISO 13616. Aj keď sú generované IBANy matematicky platné, sú náhodné a nie sú spojené so skutočnými bankovými účtami, čo z nich robí ideálne na testovanie, ale nie na skutočné transakcie.
Nástroj aktuálne podporuje formáty IBAN pre Nemecko, Spojené kráľovstvo, Francúzsko, Španielsko, Taliansko, Holandsko, Švajčiarsko, Rakúsko, Belgicko a Poľsko. Tieto pokrývajú najčastejšie používané formáty IBAN v Európe.
Nie. IBANy vytvorené týmto generátorom sú štrukturálne platné, ale náhodne generované. Nie sú spojené so skutočnými bankovými účtami a mali by sa používať len na testovacie, vzdelávacie alebo demonštračné účely.
Validátor kontroluje niekoľko aspektov IBAN:
Nie. Hoci sa IBANy často zobrazujú s medzerami pre čitateľnosť (zvyčajne v skupinách po štyroch znakoch), medzery sa pri validácii ignorujú. Náš nástroj spracováva formátované aj neformátované IBANy.
Nie. Tento nástroj funguje výlučne vo vašom prehliadači. Žiadne IBAN dáta nie sú odosielané na žiadny server, uložené alebo zdieľané s tretími stranami. Vaše dáta zostávajú súkromné a zabezpečené.
Aktuálne nástroj validuje len IBANy z podporovaných krajín uvedených v rozbaľovacom zozname. Ak potrebujete validáciu pre ďalšie krajiny, dajte nám vedieť prostredníctvom formulára na spätnú väzbu.
IBAN môže zlyhať pri validácii z niekoľkých dôvodov:
Vítame spätnú väzbu na zlepšenie nástroja. Prosím, použite formulár na spätnú väzbu, ktorý je prístupný prostredníctvom odkazu na spodnej časti stránky, aby ste hlásili akékoľvek problémy alebo navrhli vylepšenia.
Pre vývojárov, ktorí majú záujem implementovať validáciu a generovanie IBAN vo svojich aplikáciách, sú tu kódové príklady v rôznych programovacích jazykoch:
1function validateIban(iban) {
2 // Odstrániť medzery a previesť na veľké písmená
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Základná kontrola formátu
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Presunúť prvé 4 znaky na koniec
11 const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12 // Prevedenie písmen na čísla
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 // Vypočítanie mod 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// Príklad použitia
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 (neplatné kontrolné číslice)
33
1def validate_iban(iban):
2 # Odstrániť medzery a previesť na veľké písmená
3 iban = iban.replace(' ', '').upper()
4
5 # Základná kontrola formátu
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Presunúť prvé 4 znaky na koniec
10 rearranged = iban[4:] + iban[:4]
11
12 # Prevedenie písmen na čísla (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 # Kontrola, či mod 97 je rovné 1
21 return int(converted) % 97 == 1
22
23# Príklad použitia
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 (neplatné kontrolné číslice)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Odstrániť medzery a previesť na veľké písmená
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Základná kontrola formátu
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Presunúť prvé 4 znaky na koniec
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Prevedenie písmen na čísla
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 // Vypočítanie 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 // Pridať ďalšie krajiny podľa potreby
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Kód krajiny ${countryCode} nie je podporovaný`);
11 }
12
13 // Generovanie náhodného BBAN na základe krajinského formátu
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 // Generovanie numerických znakov
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Generovanie abecedných znakov
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 // Generovanie alfanumerických znakov
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 // Vypočítanie kontrolných číslic
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Vytvorenie počiatočného IBANu s '00' ako kontrolné číslice
55 const initialIban = countryCode + '00' + bban;
56
57 // Presunúť a previesť písmená na čísla
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 // Vypočítanie 98 mínus 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// Príklad použitia
77console.log(generateIban('DE')); // Generuje platný nemecký IBAN
78console.log(generateIban('GB')); // Generuje platný IBAN Spojeného kráľovstva
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 # Pridať ďalšie krajiny podľa potreby
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Kód krajiny {country_code} nie je podporovaný")
14
15 # Generovanie náhodného BBAN na základe krajinského formátu
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': # Numerické
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Abecedné
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanumerické
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Vypočítanie kontrolných číslic
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 # Vytvorenie reťazca na výpočet kontrolných číslic
40 check_string = bban + country_code + '00'
41
42 # Prevedenie písmen na čísla (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 # Vypočítanie 98 mínus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Príklad použitia
57print(generate_iban('DE')) # Generuje platný nemecký IBAN
58print(generate_iban('GB')) # Generuje platný IBAN Spojeného kráľovstva
59
Nástroj na generovanie a validáciu IBAN poskytuje jednoduché, ale mocné riešenie pre testovacie a vzdelávacie účely týkajúce sa medzinárodných bankových identifikátorov. Ponúkaním funkcií generovania a validácie v používateľsky prívetivom rozhraní eliminuje potrebu zložitých konfigurácií alebo integrácií tretích strán.
Či už vyvíjate finančné aplikácie, testujete platobné systémy alebo sa učíte o medzinárodných bankových normách, tento nástroj ponúka jednoduchý spôsob, ako pracovať s IBANmi. Komplexná validácia zabezpečuje, že všetky generované IBANy sú štrukturálne správne a v súlade s medzinárodnými normami.
Vyskúšajte generovať alebo validovať IBAN teraz, aby ste si sami vyskúšali schopnosti nástroja!
Objavte ďalšie nástroje, ktoré by mohli byť užitočné pre vašu pracovnú postupnosť