Twórz losowe numery IBAN zgodne z formatem lub waliduj istniejące za pomocą naszego prostego narzędzia. Idealne do testowania aplikacji finansowych, oprogramowania bankowego i celów edukacyjnych.
Narzędzie do Generowania i Walidacji Międzynarodowego Numeru Rachunku Bankowego (IBAN) to kompleksowe narzędzie zaprojektowane do testowania i weryfikacji w aplikacjach finansowych, oprogramowaniu bankowym oraz kontekstach edukacyjnych. Ta przyjazna dla użytkownika aplikacja oferuje dwie podstawowe funkcje: generowanie losowych, ale zgodnych z formatem IBAN-ów oraz walidację integralności strukturalnej wprowadzonych przez użytkownika IBAN-ów. Niezależnie od tego, czy jesteś deweloperem testującym oprogramowanie finansowe, specjalistą QA weryfikującym aplikacje bankowe, czy nauczycielem wyjaśniającym międzynarodowe standardy bankowe, to narzędzie zapewnia proste rozwiązanie bez potrzeby skomplikowanej konfiguracji czy integracji z zewnętrznymi systemami.
IBAN-y (Międzynarodowe Numery Rachunków Bankowych) to ustandaryzowane identyfikatory rachunków używane międzynarodowo w celu ułatwienia transakcji transgranicznych i zmniejszenia błędów w międzynarodowych przelewach pieniężnych. Każdy IBAN składa się z kodu kraju, cyfr kontrolnych oraz podstawowego numeru rachunku bankowego (BBAN), który podlega formatom specyficznym dla danego kraju. Nasze narzędzie obsługuje wiele formatów krajowych i zapewnia, że wszystkie generowane IBAN-y przechodzą algorytm walidacji MOD 97 określony w standardzie ISO 13616.
IBAN składa się z maksymalnie 34 alfanumerycznych znaków, chociaż dokładna długość różni się w zależności od kraju. Standardowa struktura obejmuje:
Na przykład, niemiecki IBAN ma strukturę DE2!n8!n10!n
, gdzie:
DE
to kod kraju2!n
reprezentuje dwie cyfry kontrolne8!n
reprezentuje ośmiocyfrowy kod banku10!n
reprezentuje dziesięcio-cyfrowy numer rachunkuRóżne kraje mają różne formaty BBAN, co skutkuje różnymi długościami IBAN-ów:
Kraj | Długość | Struktura | Przykład |
---|---|---|---|
Niemcy (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
Wielka Brytania (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Francja (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Hiszpania (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Włochy (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Proces walidacji IBAN wykorzystuje algorytm MOD 97, zgodnie z normą ISO 7064. Oto jak to działa:
Matematycznie można to przedstawić jako:
Nasz walidator implementuje ten algorytm, aby zweryfikować integralność strukturalną każdego IBAN-u wprowadzonego przez użytkowników.
Generator IBAN tworzy losowe, ale ważne IBAN-y do celów testowych. Kluczowe funkcje obejmują:
Generator tworzy IBAN-y poprzez:
Walidator IBAN sprawdza integralność strukturalną wprowadzonych przez użytkownika IBAN-ów. Kluczowe funkcje obejmują:
Walidator przeprowadza wiele kontroli:
Narzędzie do Generowania i Walidacji IBAN służy wielu celom w różnych dziedzinach:
Chociaż nasze narzędzie do Generowania i Walidacji IBAN oferuje uproszczone doświadczenie do celów testowych, istnieją alternatywne podejścia do rozważenia:
Nasze narzędzie wypełnia lukę między tymi alternatywami, oferując prosty, dostępny interfejs zarówno do generowania, jak i walidacji bez potrzeby technicznej integracji czy płatnych subskrypcji.
IBAN (Międzynarodowy Numer Rachunku Bankowego) to ustandaryzowany międzynarodowy system numerowania opracowany w celu identyfikacji rachunków bankowych w transakcjach międzynarodowych. Został ustanowiony przez Międzynarodową Organizację Normalizacyjną (ISO), aby ułatwić bezbłędne transakcje międzynarodowe.
Generator IBAN tworzy strukturalnie ważne IBAN-y, które przechodzą algorytm kontrolny MOD 97 zgodnie z normą ISO 13616. Chociaż generowane IBAN-y są matematycznie ważne, są losowe i nie są powiązane z rzeczywistymi rachunkami bankowymi, co czyni je idealnymi do testowania, ale nie do rzeczywistych transakcji.
Narzędzie obecnie obsługuje formaty IBAN dla Niemiec, Wielkiej Brytanii, Francji, Hiszpanii, Włoch, Holandii, Szwajcarii, Austrii, Belgii i Polski. Obejmują one najczęściej używane formaty IBAN w Europie.
Nie. IBAN-y tworzone przez ten generator są strukturalnie ważne, ale losowo generowane. Nie są połączone z rzeczywistymi rachunkami bankowymi i powinny być używane tylko do celów testowych, edukacyjnych lub demonstracyjnych.
Walidator sprawdza kilka aspektów IBAN-u:
Nie. Chociaż IBAN-y często są wyświetlane ze spacjami dla lepszej czytelności (zwykle w grupach po cztery znaki), spacje są ignorowane podczas walidacji. Nasze narzędzie obsługuje zarówno sformatowane (ze spacjami), jak i niesformatowane IBAN-y.
Nie. To narzędzie działa całkowicie w Twojej przeglądarce. Żadne dane IBAN nie są wysyłane na żaden serwer, przechowywane ani udostępniane osobom trzecim. Twoje dane pozostają prywatne i bezpieczne.
Obecnie narzędzie waliduje tylko IBAN-y z obsługiwanych krajów wymienionych w rozwijanym menu. Jeśli potrzebujesz walidacji dla dodatkowych krajów, daj nam znać za pośrednictwem formularza opinii.
IBAN może nie przejść walidacji z kilku powodów:
Chętnie przyjmujemy opinie, aby poprawić narzędzie. Proszę skorzystać z formularza opinii dostępnego za pośrednictwem linku na dole strony, aby zgłosić jakiekolwiek problemy lub zasugerować ulepszenia.
Dla deweloperów zainteresowanych implementacją walidacji i generowania IBAN-ów w swoich aplikacjach, oto przykłady kodu w różnych językach programowania:
1function validateIban(iban) {
2 // Usuń spacje i zamień na wielkie litery
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Sprawdzenie podstawowego formatu
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Przenieś pierwsze 4 znaki na koniec
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 // Oblicz 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// Przykład użycia
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 (niepoprawne cyfry kontrolne)
32
1def validate_iban(iban):
2 # Usuń spacje i zamień na wielkie litery
3 iban = iban.replace(' ', '').upper()
4
5 # Sprawdzenie podstawowego formatu
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Przenieś pierwsze 4 znaki na koniec
10 rearranged = iban[4:] + iban[:4]
11
12 # Zamień litery na liczby (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 # Sprawdź, czy mod 97 równa się 1
21 return int(converted) % 97 == 1
22
23# Przykład użycia
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 (niepoprawne cyfry kontrolne)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Usuń spacje i zamień na wielkie litery
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Sprawdzenie podstawowego formatu
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Przenieś pierwsze 4 znaki na koniec
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Zamień litery na liczby
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 // Oblicz 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 // Dodaj więcej krajów w razie potrzeby
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Kod kraju ${countryCode} nie jest obsługiwany`);
11 }
12
13 // Generuj losowy BBAN na podstawie formatu kraju
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 // Generuj znaki numeryczne
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Generuj znaki alfabetyczne
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 // Generuj znaki alfanumeryczne
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 // Oblicz cyfry kontrolne
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Utwórz początkowy IBAN z '00' jako cyframi kontrolnymi
55 const initialIban = countryCode + '00' + bban;
56
57 // Przestaw i zamień litery na liczby
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 // Oblicz 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// Przykład użycia
77console.log(generateIban('DE')); // Generuje ważny niemiecki IBAN
78console.log(generateIban('GB')); // Generuje ważny brytyjski 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 # Dodaj więcej krajów w razie potrzeby
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Kod kraju {country_code} nie jest obsługiwany")
14
15 # Generuj losowy BBAN na podstawie formatu kraju
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': # Numeryczny
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alfabet
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanumeryczny
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Oblicz cyfry kontrolne
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 # Utwórz ciąg do obliczeń cyfr kontrolnych
40 check_string = bban + country_code + '00'
41
42 # Zamień litery na liczby (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 # Oblicz 98 minus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Przykład użycia
57print(generate_iban('DE')) # Generuje ważny niemiecki IBAN
58print(generate_iban('GB')) # Generuje ważny brytyjski IBAN
59
Narzędzie do Generowania i Walidacji IBAN zapewnia proste, ale potężne rozwiązanie do testowania i celów edukacyjnych związanych z międzynarodowymi identyfikatorami bankowymi. Oferując zarówno funkcje generowania, jak i walidacji w przyjaznym dla użytkownika interfejsie, eliminuje potrzebę skomplikowanej konfiguracji lub integracji z zewnętrznymi systemami.
Niezależnie od tego, czy rozwijasz aplikacje finansowe, testujesz systemy płatności, czy uczysz się o międzynarodowych standardach bankowych, to narzędzie oferuje prosty sposób pracy z IBAN-ami. Kompletna walidacja zapewnia, że wszystkie generowane IBAN-y są strukturalnie poprawne i zgodne z międzynarodowymi standardami.
Spróbuj teraz wygenerować lub zwalidować IBAN, aby osobiście doświadczyć możliwości tego narzędzia!
Odkryj więcej narzędzi, które mogą być przydatne dla Twojego przepływu pracy