Създайте случайни 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 // Преместете първите 4 символа в края
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 # Преместете първите 4 символа в края
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 // Преместете първите 4 символа в края
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 сега, за да изпитате възможностите на инструмента на практика!
Открийте още инструменти, които може да бъдат полезни за вашия работен процес