IBANهای تصادفی مطابق با فرمت را ایجاد کنید یا IBANهای موجود را با ابزار ساده ما اعتبارسنجی کنید. این ابزار برای آزمایش برنامههای مالی، نرمافزارهای بانکی و مقاصد آموزشی ایدهآل است.
ابزار تولید و اعتبارسنجی شماره حساب بانکی بینالمللی (IBAN) یک ابزار جامع است که برای اهداف آزمایش و تأیید در برنامههای مالی، نرمافزارهای بانکی و زمینههای آموزشی طراحی شده است. این برنامه کاربرپسند دو ویژگی اساسی را ارائه میدهد: تولید IBANهای تصادفی اما مطابق با فرمت و اعتبارسنجی یکپارچگی ساختاری IBANهای وارد شده توسط کاربر. چه شما یک توسعهدهنده باشید که نرمافزار مالی را آزمایش میکنید، یک متخصص QA که برنامههای بانکی را تأیید میکند، یا یک مربی که استانداردهای بانکی بینالمللی را توضیح میدهد، این ابزار یک راهحل ساده را بدون نیاز به پیکربندیهای پیچیده یا ادغامهای شخص ثالث ارائه میدهد.
IBANها (شمارههای حساب بانکی بینالمللی) شناسههای حساب استاندارد شدهای هستند که بهطور بینالمللی برای تسهیل تراکنشهای فرامرزی و کاهش خطاها در انتقالهای پولی بینالمللی استفاده میشوند. هر IBAN شامل یک کد کشور، ارقام بررسی و یک شماره حساب بانکی پایه (BBAN) است که از فرمتهای خاص کشور پیروی میکند. ابزار ما از فرمتهای چندگانه کشور پشتیبانی میکند و اطمینان حاصل میکند که تمام IBANهای تولید شده از الگوریتم اعتبارسنجی MOD 97 که در استاندارد ISO 13616 مشخص شده است، عبور میکنند.
یک IBAN شامل حداکثر ۳۴ کاراکتر الفبایی و عددی است، هرچند که طول دقیق آن بسته به کشور متفاوت است. ساختار استاندارد شامل:
به عنوان مثال، یک IBAN آلمانی ساختار DE2!n8!n10!n
را دنبال میکند که در آن:
DE
کد کشور است2!n
نمایانگر دو رقم عددی برای اعداد بررسی است8!n
نمایانگر یک کد بانکی هشت رقمی است10!n
نمایانگر یک شماره حساب ده رقمی استکشورهای مختلف فرمتهای BBAN متفاوتی دارند که منجر به طولهای مختلف IBAN میشود:
کشور | طول | ساختار | مثال |
---|---|---|---|
آلمان (DE) | ۲۲ | DE2!n8!n10!n | DE89370400440532013000 |
بریتانیا (GB) | ۲۲ | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
فرانسه (FR) | ۲۷ | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
اسپانیا (ES) | ۲۴ | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
ایتالیا (IT) | ۲۷ | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
فرآیند اعتبارسنجی IBAN از الگوریتم MOD 97 استفاده میکند که در استاندارد ISO 7064 مشخص شده است. نحوه کار آن به این صورت است:
از نظر ریاضی، این به صورت زیر نمایش داده میشود:
ابزار اعتبارسنجی ما این الگوریتم را برای تأیید یکپارچگی ساختاری هر 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 // جابجایی و تبدیل حروف به اعداد
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 // محاسبه 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// مثال استفاده
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 (اعداد بررسی نامعتبر)
32
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 # جابجایی چهار کاراکتر اول به انتها
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 # بررسی اینکه آیا mod 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 // جابجایی چهار کاراکتر اول به انتها
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 // محاسبه 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 // کشورهای بیشتر را به دلخواه اضافه کنید
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 // محاسبه ۹۸ منهای 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// مثال استفاده
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 # محاسبه ۹۸ منهای mod 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 تولید یا اعتبارسنجی کنید تا قابلیتهای این ابزار را از نزدیک تجربه کنید!
کشف ابزارهای بیشتری که ممکن است برای جریان کاری شما مفید باشند