Buat IBAN yang mematuhi format secara rawak atau sahkan yang sedia ada dengan alat kami yang mudah. Sesuai untuk menguji aplikasi kewangan, perisian perbankan, dan tujuan pendidikan.
Alat Penjana dan Pengesah Nombor Akaun Bank Antarabangsa (IBAN) adalah alat komprehensif yang direka untuk tujuan pengujian dan pengesahan dalam aplikasi kewangan, perisian perbankan, dan konteks pendidikan. Aplikasi mesra pengguna ini menawarkan dua ciri penting: menjana IBAN yang rawak tetapi mematuhi format dan mengesahkan integriti struktur IBAN yang dimasukkan oleh pengguna. Sama ada anda seorang pembangun yang menguji perisian kewangan, seorang pakar QA yang mengesahkan aplikasi perbankan, atau seorang pendidik yang menerangkan piawaian perbankan antarabangsa, alat ini menyediakan penyelesaian yang mudah tanpa memerlukan konfigurasi yang kompleks atau integrasi pihak ketiga.
IBAN (Nombor Akaun Bank Antarabangsa) adalah pengenalan akaun yang distandardkan yang digunakan di peringkat antarabangsa untuk memudahkan transaksi merentasi sempadan dan mengurangkan kesilapan dalam pemindahan wang antarabangsa. Setiap IBAN terdiri daripada kod negara, digit semak, dan nombor akaun bank asas (BBAN) yang mengikuti format tertentu negara. Alat kami menyokong pelbagai format negara dan memastikan semua IBAN yang dijana lulus algoritma pengesahan MOD 97 yang ditentukan dalam piawaian ISO 13616.
Sebuah IBAN terdiri daripada sehingga 34 aksara alfanumerik, walaupun panjang tepat berbeza mengikut negara. Struktur standard termasuk:
Sebagai contoh, IBAN Jerman mengikuti struktur DE2!n8!n10!n
di mana:
DE
adalah kod negara2!n
mewakili dua digit numerik semak8!n
mewakili kod bank lapan digit10!n
mewakili nombor akaun sepuluh digitNegara yang berbeza mempunyai format BBAN yang berbeza, menghasilkan panjang IBAN yang berbeza:
Negara | Panjang | Struktur | Contoh |
---|---|---|---|
Jerman (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
UK (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Perancis (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Sepanyol (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Itali (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Proses pengesahan IBAN menggunakan algoritma MOD 97 seperti yang ditentukan dalam piawaian ISO 7064. Berikut adalah cara ia berfungsi:
Secara matematik, ini diwakili sebagai:
Pengesah kami melaksanakan algoritma ini untuk mengesahkan integriti struktur mana-mana IBAN yang dimasukkan oleh pengguna.
Penjana IBAN mencipta IBAN yang rawak tetapi sah untuk tujuan pengujian. Ciri utama termasuk:
Penjana mencipta IBAN dengan:
Pengesah IBAN memeriksa integriti struktur IBAN yang dimasukkan oleh pengguna. Ciri utama termasuk:
Pengesah melaksanakan pelbagai pemeriksaan:
Alat Penjana dan Pengesah IBAN berfungsi untuk pelbagai tujuan merentasi domain yang berbeza:
Walaupun alat Penjana dan Pengesah IBAN kami menawarkan pengalaman yang dipermudahkan untuk tujuan pengujian, terdapat pendekatan alternatif yang perlu dipertimbangkan:
Alat kami menjembatani jurang antara alternatif ini dengan menyediakan antara muka yang mudah dan boleh diakses untuk kedua-dua penghasilan dan pengesahan tanpa memerlukan integrasi teknikal atau langganan berbayar.
IBAN (Nombor Akaun Bank Antarabangsa) adalah sistem penomboran antarabangsa yang distandardkan yang dibangunkan untuk mengenal pasti akaun bank merentasi sempadan negara. Ia ditubuhkan oleh Pertubuhan Antarabangsa untuk Standardisasi (ISO) untuk memudahkan transaksi antarabangsa tanpa kesilapan.
Penjana IBAN mencipta IBAN yang sah secara struktur yang lulus algoritma semakan MOD 97 seperti yang ditentukan dalam piawaian ISO 13616. Walaupun IBAN yang dijana adalah sah secara matematik, ia adalah rawak dan tidak berkaitan dengan akaun bank sebenar, menjadikannya sempurna untuk pengujian tetapi tidak untuk transaksi sebenar.
Alat ini kini menyokong format IBAN untuk Jerman, United Kingdom, Perancis, Sepanyol, Itali, Belanda, Switzerland, Austria, Belgium, dan Poland. Ini merangkumi format IBAN yang paling biasa digunakan di Eropah.
Tidak. IBAN yang dicipta oleh penjana ini adalah sah secara struktur tetapi dijana secara rawak. Ia tidak disambungkan kepada akaun bank sebenar dan hanya boleh digunakan untuk tujuan pengujian, pendidikan, atau demonstrasi.
Pengesah memeriksa beberapa aspek IBAN:
Tidak. Walaupun IBAN sering dipaparkan dengan ruang untuk kebolehbacaan (biasanya dalam kumpulan empat aksara), ruang diabaikan semasa pengesahan. Alat kami mengendalikan kedua-dua IBAN yang diformat dan yang tidak diformat.
Tidak. Alat ini beroperasi sepenuhnya dalam pelayar anda. Tiada data IBAN yang dihantar ke mana-mana pelayan, disimpan, atau dikongsi dengan pihak ketiga. Data anda kekal peribadi dan selamat.
Pada masa ini, alat ini hanya mengesahkan IBAN dari negara yang disokong yang disenaraikan dalam dropdown. Jika anda memerlukan pengesahan untuk negara tambahan, sila maklumkan kepada kami melalui borang maklum balas.
IBAN mungkin gagal pengesahan atas beberapa sebab:
Kami mengalu-alukan maklum balas untuk memperbaiki alat ini. Sila gunakan borang maklum balas yang boleh diakses melalui pautan di bahagian bawah halaman untuk melaporkan sebarang isu atau mencadangkan penambahbaikan.
Untuk pembangun yang berminat dalam melaksanakan pengesahan dan penjanaan IBAN dalam aplikasi mereka sendiri, berikut adalah contoh kod dalam pelbagai bahasa pengaturcaraan:
1function validateIban(iban) {
2 // Buang ruang dan tukar kepada huruf besar
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Semak format asas
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Susun semula dan tukar huruf kepada nombor
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 // Kira 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// Contoh penggunaan
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 (digit semak tidak sah)
32
1def validate_iban(iban):
2 # Buang ruang dan tukar kepada huruf besar
3 iban = iban.replace(' ', '').upper()
4
5 # Semak format asas
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Pindahkan 4 aksara pertama ke akhir
10 rearranged = iban[4:] + iban[:4]
11
12 # Tukar huruf kepada nombor (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 # Semak jika mod 97 sama dengan 1
21 return int(converted) % 97 == 1
22
23# Contoh penggunaan
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 (digit semak tidak sah)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Buang ruang dan tukar kepada huruf besar
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Semak format asas
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Pindahkan 4 aksara pertama ke akhir
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Tukar huruf kepada nombor
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 // Kira 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 // Tambah lebih banyak negara jika perlu
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Kod negara ${countryCode} tidak disokong`);
11 }
12
13 // Jana BBAN rawak berdasarkan format negara
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 // Jana aksara numerik
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Jana aksara alfabet
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 // Jana aksara alfanumerik
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 // Kira digit semak
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Cipta IBAN awal dengan '00' sebagai digit semak
55 const initialIban = countryCode + '00' + bban;
56
57 // Susun semula dan tukar huruf kepada nombor
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 // Kira 98 tolak 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// Contoh penggunaan
77console.log(generateIban('DE')); // Menjana IBAN Jerman yang sah
78console.log(generateIban('GB')); // Menjana IBAN UK yang sah
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 # Tambah lebih banyak negara jika perlu
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Kod negara {country_code} tidak disokong")
14
15 # Jana BBAN rawak berdasarkan format negara
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': # Numerik
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': # Alfanumerik
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Kira digit semak
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 # Cipta string untuk pengiraan digit semak
40 check_string = bban + country_code + '00'
41
42 # Tukar huruf kepada nombor (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 # Kira 98 tolak mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Contoh penggunaan
57print(generate_iban('DE')) # Menjana IBAN Jerman yang sah
58print(generate_iban('GB')) # Menjana IBAN UK yang sah
59
Alat Penjana dan Pengesah IBAN menyediakan penyelesaian yang mudah tetapi berkuasa untuk tujuan pengujian dan pendidikan yang berkaitan dengan pengenalan perbankan antarabangsa. Dengan menawarkan kedua-dua keupayaan penghasilan dan pengesahan dalam antara muka mesra pengguna, ia menghapuskan keperluan untuk konfigurasi yang kompleks atau integrasi pihak ketiga.
Sama ada anda sedang membangunkan aplikasi kewangan, menguji sistem pembayaran, atau mempelajari tentang piawaian perbankan antarabangsa, alat ini menawarkan cara yang mudah untuk bekerja dengan IBAN. Pengesahan komprehensif memastikan bahawa semua IBAN yang dijana adalah sah secara struktur dan mematuhi piawaian antarabangsa.
Cuba jana atau sahkan IBAN sekarang untuk merasai keupayaan alat ini secara langsung!
Temui lebih banyak alat yang mungkin berguna untuk aliran kerja anda