เครื่องมือสร้างและตรวจสอบ IBAN สำหรับการทดสอบและการตรวจสอบ
สร้าง IBAN ที่เป็นไปตามรูปแบบแบบสุ่มหรือยืนยัน IBAN ที่มีอยู่แล้วด้วยเครื่องมือที่ง่ายของเรา เหมาะสำหรับการทดสอบแอปพลิเคชันทางการเงิน ซอฟต์แวร์ธนาคาร และวัตถุประสงค์ทางการศึกษา
เครื่องมือ IBAN & Validator
เอกสารประกอบ
IBAN Generator and Validator Tool
Introduction
เครื่องมือสร้างและตรวจสอบหมายเลขบัญชีธนาคารระหว่างประเทศ (IBAN) เป็นเครื่องมือที่ครอบคลุมซึ่งออกแบบมาเพื่อการทดสอบและการตรวจสอบในแอปพลิเคชันการเงิน ซอฟต์แวร์ธนาคาร และบริบทการศึกษา แอปพลิเคชันที่ใช้งานง่ายนี้มีฟีเจอร์ที่สำคัญสองอย่าง: การสร้าง IBAN แบบสุ่มที่เป็นไปตามรูปแบบและการตรวจสอบความสมบูรณ์ของโครงสร้างของ IBAN ที่ผู้ใช้ป้อน ไม่ว่าคุณจะเป็นนักพัฒนาที่ทดสอบซอฟต์แวร์การเงิน ผู้เชี่ยวชาญด้าน QA ที่ตรวจสอบแอปพลิเคชันธนาคาร หรือผู้สอนที่อธิบายมาตรฐานการธนาคารระหว่างประเทศ เครื่องมือนี้ให้โซลูชันที่ตรงไปตรงมาโดยไม่ต้องการการกำหนดค่าที่ซับซ้อนหรือการรวมระบบจากบุคคลที่สาม
IBAN (หมายเลขบัญชีธนาคารระหว่างประเทศ) เป็นตัวระบุบัญชีที่มีมาตรฐานซึ่งใช้ทั่วโลกเพื่ออำนวยความสะดวกในการทำธุรกรรมข้ามพรมแดนและลดข้อผิดพลาดในการโอนเงินระหว่างประเทศ IBAN แต่ละหมายเลขประกอบด้วยรหัสประเทศ ตัวเลขตรวจสอบ และหมายเลขบัญชีธนาคารพื้นฐาน (BBAN) ที่มีรูปแบบเฉพาะตามประเทศ เครื่องมือของเรารองรับรูปแบบหลายประเทศและรับรองว่า IBAN ที่สร้างขึ้นทั้งหมดผ่านอัลกอริธึมการตรวจสอบ MOD 97 ที่กำหนดในมาตรฐาน ISO 13616
How IBANs Work
IBAN Structure and Format
IBAN ประกอบด้วยอักขระอัลฟานิวเมอริกสูงสุด 34 ตัว แม้ว่าความยาวที่แน่นอนจะแตกต่างกันไปตามประเทศ โครงสร้างมาตรฐานประกอบด้วย:
- รหัสประเทศ: รหัส ISO 3166-1 alpha-2 สองตัว (เช่น DE สำหรับเยอรมนี, GB สำหรับสหราชอาณาจักร)
- ตัวเลขตรวจสอบ: ตัวเลขสองตัวที่คำนวณโดยใช้อัลกอริธึม MOD 97 เพื่อตรวจสอบ IBAN
- หมายเลขบัญชีธนาคารพื้นฐาน (BBAN): รูปแบบเฉพาะของประเทศที่อาจรวมถึง:
- รหัสธนาคาร
- รหัสสาขา (รหัสการจัดเรียง)
- หมายเลขบัญชี
- ตัวเลขตรวจสอบของชาติ
ตัวอย่างเช่น 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 Validation Algorithm
กระบวนการตรวจสอบ IBAN ใช้อัลกอริธึม MOD 97 ตามที่กำหนดในมาตรฐาน ISO 7064 วิธีการทำงานมีดังนี้:
- ย้ายสี่ตัวอักษรแรก (รหัสประเทศและตัวเลขตรวจสอบ) ไปที่ท้ายสุดของ IBAN
- แปลงตัวอักษรทั้งหมดเป็นตัวเลข (A=10, B=11, ..., Z=35)
- คำนวณโมดูโล 97 ของหมายเลขที่ได้
- หากเศษเท่ากับ 1 แสดงว่า IBAN นั้นถูกต้อง
ทางคณิตศาสตร์สามารถแสดงได้ว่า:
ตัวตรวจสอบของเรานำอัลกอริธึมนี้ไปใช้เพื่อตรวจสอบความสมบูรณ์ของโครงสร้างของ IBAN ใดๆ ที่ผู้ใช้ป้อน
Tool Features
IBAN Generator
เครื่องมือสร้าง IBAN สร้าง IBAN ที่ถูกต้องแบบสุ่มสำหรับวัตถุประสงค์ในการทดสอบ ฟีเจอร์หลักประกอบด้วย:
- การเลือกประเทศ: เลือกจากหลายประเทศที่รองรับรวมถึงเยอรมนี สหราชอาณาจักร ฝรั่งเศส สเปน อิตาลี เนเธอร์แลนด์ สวิตเซอร์แลนด์ ออสเตรีย เบลเยียม และโปแลนด์
- การปฏิบัติตามรูปแบบ: IBAN ที่สร้างขึ้นทั้งหมดจะเป็นไปตามรูปแบบเฉพาะของประเทศและผ่านการตรวจสอบ MOD 97
- การสร้างด้วยคลิกเดียว: สร้าง IBAN ที่ถูกต้องทันทีด้วยการคลิกปุ่มเดียว
- คัดลอกไปยังคลิปบอร์ด: คัดลอก IBAN ที่สร้างขึ้นได้อย่างง่ายดายสำหรับใช้ในสถานการณ์การทดสอบ
- การแสดงผลด้วยภาพ: ดูการแบ่งส่วนประกอบของ IBAN ที่มีการใช้สี (รหัสประเทศ ตัวเลขตรวจสอบ รายละเอียดธนาคาร)
เครื่องมือสร้าง IBAN ทำการสร้าง IBAN โดย:
- เลือกรูปแบบของประเทศที่เหมาะสม
- สร้างตัวเลขสุ่มสำหรับส่วน BBAN
- คำนวณตัวเลขตรวจสอบที่ถูกต้องโดยใช้อัลกอริธึม MOD 97
- ประกอบ IBAN ทั้งหมด
IBAN Validator
ตัวตรวจสอบ IBAN ตรวจสอบความสมบูรณ์ของโครงสร้างของ IBAN ที่ผู้ใช้ป้อน ฟีเจอร์หลักประกอบด้วย:
- การตรวจสอบรูปแบบ: ตรวจสอบว่า IBAN เป็นไปตามรูปแบบเฉพาะของประเทศที่ถูกต้อง
- การตรวจสอบ MOD 97: ยืนยันตัวเลขตรวจสอบโดยใช้อัลกอริธึมมาตรฐาน
- การแบ่งรายละเอียด: แสดงส่วนประกอบของ IBAN ที่ถูกต้อง (รหัสประเทศ ตัวเลขตรวจสอบ รหัสธนาคาร หมายเลขบัญชี)
- การระบุข้อผิดพลาด: ให้ข้อความข้อผิดพลาดเฉพาะสำหรับ IBAN ที่ไม่ถูกต้อง
- ความช่วยเหลือในการจัดรูปแบบ: จัดรูปแบบ IBAN ที่ป้อนโดยอัตโนมัติเพื่อความสามารถในการอ่านที่ดีขึ้น
ตัวตรวจสอบทำการตรวจสอบหลายประการ:
- ตรวจสอบว่ารหัสประเทศได้รับการสนับสนุน
- ตรวจสอบความยาวของ IBAN ตามความต้องการเฉพาะของประเทศ
- ตรวจสอบประเภทของอักขระ (ตัวอักษรและตัวเลขในตำแหน่งที่ถูกต้อง)
- ทำการตรวจสอบ MOD 97 เพื่อตรวจสอบตัวเลขตรวจสอบ
Step-by-Step Guide
Generating an IBAN
- เข้าถึงแท็บ Generator: คลิกที่แท็บ "Generator" (เลือกโดยค่าเริ่มต้น)
- เลือกประเทศ: เลือกประเทศที่คุณต้องการจากเมนูแบบเลื่อนลง
- สร้าง IBAN: คลิกปุ่ม "Generate IBAN"
- ดูผลลัพธ์: IBAN ที่สร้างขึ้นจะปรากฏด้านล่างพร้อมการแบ่งส่วนประกอบด้วยภาพ
- คัดลอกไปยังคลิปบอร์ด: คลิกปุ่ม "Copy to clipboard" เพื่อคัดลอก IBAN สำหรับใช้ที่อื่น
Validating an IBAN
- เข้าถึงแท็บ Validator: คลิกที่แท็บ "Validator"
- ป้อน IBAN: พิมพ์หรือวาง IBAN ลงในช่องป้อนข้อมูล
- ช่องว่างและการจัดรูปแบบจะถูกจัดการโดยอัตโนมัติ
- เครื่องมือรองรับทั้ง IBAN ที่จัดรูปแบบ (มีช่องว่าง) และ IBAN ที่ไม่มีการจัดรูปแบบ
- ดูผลการตรวจสอบ: เครื่องมือจะทำการตรวจสอบ IBAN โดยอัตโนมัติเมื่อคุณพิมพ์
- ตรวจสอบรายละเอียด: สำหรับ IBAN ที่ถูกต้อง การแบ่งส่วนประกอบจะถูกแสดง
- ตรวจสอบข้อผิดพลาดใดๆ: สำหรับ IBAN ที่ไม่ถูกต้อง ข้อความข้อผิดพลาดเฉพาะจะช่วยระบุปัญหา
Use Cases
เครื่องมือสร้างและตรวจสอบ IBAN มีวัตถุประสงค์หลายประการในหลายโดเมน:
การพัฒนาและการทดสอบซอฟต์แวร์
- การทดสอบ API: สร้าง IBAN ที่ถูกต้องเพื่อทดสอบ API การเงินโดยไม่ใช้หมายเลขบัญชีจริง
- การตรวจสอบฟอร์ม: ทดสอบตรรกะการตรวจสอบ IBAN ในฟอร์มเว็บและแอปพลิเคชัน
- การทดสอบกรณีขอบ: ตรวจสอบว่าแอปพลิเคชันจัดการกับ IBAN จากประเทศต่างๆ ได้อย่างไร
- การทดสอบการถดถอย: ตรวจสอบให้แน่ใจว่าการจัดการ IBAN ยังคงถูกต้องหลังจากการอัปเดตซอฟต์แวร์
การพัฒนาแอปพลิเคชันการเงิน
- ระบบการชำระเงิน: ทดสอบฟังก์ชันการประมวลผลการชำระเงินระหว่างประเทศ
- ซอฟต์แวร์ธนาคาร: ตรวจสอบส่วนประกอบการแยกและการตรวจสอบ IBAN
- แอปพลิเคชันฟินเทค: ตรวจสอบให้แน่ใจว่าปฏิบัติตามมาตรฐานการธนาคารระหว่างประเทศ
- ระบบฐานข้อมูล: ทดสอบการจัดเก็บและการดึงข้อมูล IBAN
วัตถุประสงค์ทางการศึกษา
- การศึกษาเกี่ยวกับมาตรฐานการธนาคาร: แสดงให้เห็นว่า IBAN มีโครงสร้างและการตรวจสอบอย่างไร
- การศึกษาทางการเงิน: สอนนักเรียนเกี่ยวกับตัวระบุธนาคารระหว่างประเทศ
- การสอนการเขียนโค้ด: ใช้เป็นตัวอย่างสำหรับอัลกอริธึมการตรวจสอบและการจัดการข้อมูลทางการเงิน
- เอกสารทางเทคนิค: สร้างตัวอย่าง IBAN สำหรับเอกสาร API
การโยกย้ายและการแปลงข้อมูล
- การโยกย้ายระบบเก่า: ทดสอบกระบวนการแปลง IBAN เมื่ออัปเกรดระบบ
- การทำให้ข้อมูลไม่สามารถระบุได้: สร้าง IBAN ทดสอบเพื่อแทนที่หมายเลขบัญชีจริงในสภาพแวดล้อมการพัฒนา
- การเพาะข้อมูลในฐานข้อมูล: สร้างข้อมูลทดสอบที่สมจริงสำหรับฐานข้อมูลแอปพลิเคชันการเงิน
Alternatives
ในขณะที่เครื่องมือสร้างและตรวจสอบ IBAN ของเรามอบประสบการณ์ที่ราบรื่นสำหรับวัตถุประสงค์ในการทดสอบ แต่ก็มีแนวทางทางเลือกที่ควรพิจารณา:
API ธนาคารเชิงพาณิชย์
- ข้อดี: เสนอการตรวจสอบเพิ่มเติมกับทะเบียนธนาคารจริง ให้บริการทางการเงินที่ครอบคลุมมากขึ้น
- ข้อเสีย: มักต้องการการสมัครสมาชิก คีย์ API และการทำงานร่วมกัน อาจมีขีดจำกัดการใช้งาน
ไลบรารี IBAN สำหรับภาษาโปรแกรม
- ข้อดี: สามารถรวมเข้ากับโค้ดเบสของคุณได้โดยตรง เสนอการเข้าถึงแบบโปรแกรม
- ข้อเสีย: ต้องการงานพัฒนาในการดำเนินการ อาจต้องการการอัปเดตเป็นประจำเพื่อให้ทันสมัยตามมาตรฐาน
ตัวตรวจสอบธนาคารอย่างเป็นทางการ
- ข้อดี: ให้บริการโดยสถาบันการเงิน ความแม่นยำสูงสำหรับประเทศเฉพาะของพวกเขา
- ข้อเสีย: โดยปกติจะจำกัดเฉพาะประเทศเฉพาะ อาจไม่รองรับฟีเจอร์การสร้าง
การคำนวณด้วยมือ
- ข้อดี: ช่วยให้เข้าใจอัลกอริธึมพื้นฐาน ไม่มีการพึ่งพาเครื่องมือภายนอก
- ข้อเสีย: ใช้เวลานาน เสี่ยงต่อข้อผิดพลาดจากมนุษย์ ไม่เหมาะสำหรับการทดสอบในระดับใหญ่
เครื่องมือของเราช่วยเติมเต็มช่องว่างระหว่างทางเลือกเหล่านี้โดยให้ส่วนติดต่อที่เรียบง่ายและเข้าถึงได้สำหรับทั้งการสร้างและการตรวจสอบโดยไม่ต้องการการรวมระบบทางเทคนิคหรือการสมัครสมาชิกที่ต้องชำระเงิน
Frequently Asked Questions
IBAN คืออะไร?
IBAN (หมายเลขบัญชีธนาคารระหว่างประเทศ) คือระบบหมายเลขมาตรฐานระหว่างประเทศที่พัฒนาขึ้นเพื่อระบุบัญชีธนาคารข้ามพรมแดน มันถูกจัดตั้งขึ้นโดยองค์การระหว่างประเทศเพื่อการมาตรฐาน (ISO) เพื่ออำนวยความสะดวกในการทำธุรกรรมระหว่างประเทศที่ปราศจากข้อผิดพลาด
เครื่องมือสร้าง IBAN นี้มีความแม่นยำแค่ไหน?
เครื่องมือสร้าง IBAN สร้าง IBAN ที่มีโครงสร้างถูกต้องซึ่งผ่านอัลกอริธึมการตรวจสอบ MOD 97 ตามที่กำหนดในมาตรฐาน ISO 13616 แม้ว่า IBAN ที่สร้างขึ้นจะถูกต้องทางคณิตศาสตร์ แต่ก็เป็นแบบสุ่มและไม่เชื่อมโยงกับบัญชีธนาคารจริง ทำให้เหมาะสำหรับการทดสอบแต่ไม่เหมาะสำหรับการทำธุรกรรมจริง
ประเทศใดบ้างที่เครื่องมือนี้รองรับ?
เครื่องมือรองรับรูปแบบ IBAN สำหรับเยอรมนี สหราชอาณาจักร ฝรั่งเศส สเปน อิตาลี เนเธอร์แลนด์ สวิตเซอร์แลนด์ ออสเตรีย เบลเยียม และโปแลนด์ ซึ่งครอบคลุมรูปแบบ IBAN ที่ใช้กันมากที่สุดในยุโรป
ฉันสามารถใช้ IBAN ที่สร้างขึ้นสำหรับธุรกรรมจริงได้หรือไม่?
ไม่ IBAN ที่สร้างขึ้นโดยเครื่องมือนี้มีโครงสร้างที่ถูกต้องแต่ถูกสร้างแบบสุ่ม พวกเขาไม่ได้เชื่อมต่อกับบัญชีธนาคารจริงและควรใช้สำหรับการทดสอบ การศึกษา หรือการสาธิตเท่านั้น
การตรวจสอบ IBAN ทำงานอย่างไร?
ตัวตรวจสอบจะตรวจสอบหลายแง่มุมของ IBAN:
- ความถูกต้องของรหัสประเทศ
- ความยาวที่ถูกต้องสำหรับประเทศที่ระบุ
- ความถูกต้องของประเภทอักขระ (ตัวอักษรและตัวเลขในตำแหน่งที่ถูกต้อง)
- การตรวจสอบตัวเลขตรวจสอบ MOD 97 ตามมาตรฐาน ISO
ช่องว่างใน IBAN มีความสำคัญหรือไม่?
ไม่ ช่องว่างใน IBAN มักจะแสดงด้วยช่องว่างเพื่อความสามารถในการอ่าน (โดยปกติในกลุ่มตัวอักษรสี่ตัว) แต่ช่องว่างจะถูกละเว้นระหว่างการตรวจสอบ เครื่องมือของเราจัดการกับ IBAN ที่จัดรูปแบบและไม่มีการจัดรูปแบบ
ข้อมูล IBAN ของฉันถูกเก็บหรือแชร์เมื่อใช้เครื่องมือนี้หรือไม่?
ไม่ เครื่องมือนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ ไม่มีข้อมูล IBAN ถูกส่งไปยังเซิร์ฟเวอร์ใด ๆ เก็บรักษา หรือแชร์กับบุคคลที่สาม ข้อมูลของคุณยังคงเป็นส่วนตัวและปลอดภัย
ฉันสามารถตรวจสอบ IBAN จากประเทศที่ไม่ได้อยู่ในรายการดรอปดาวน์ได้หรือไม่?
ในขณะนี้ เครื่องมือนี้ตรวจสอบ IBAN จากประเทศที่รองรับในรายการดรอปดาวน์เท่านั้น หากคุณต้องการการตรวจสอบสำหรับประเทศเพิ่มเติม โปรดแจ้งให้เราทราบผ่านแบบฟอร์มข้อเสนอแนะ
ทำไม IBAN ที่ดูเหมือนถูกต้องจึงล้มเหลวในการตรวจสอบ?
IBAN อาจล้มเหลวในการตรวจสอบด้วยเหตุผลหลายประการ:
- ตัวเลขตรวจสอบไม่ถูกต้อง
- ความยาวไม่ถูกต้องสำหรับประเทศที่ระบุ
- ตัวอักษรไม่ถูกต้องในตำแหน่งเฉพาะ
- การพิมพ์ผิดหรือข้อผิดพลาดในการจัดเรียง
- รหัสประเทศไม่ได้รับการสนับสนุนโดยเครื่องมือ
ฉันจะรายงานปัญหาหรือเสนอการปรับปรุงได้อย่างไร?
เรายินดีรับข้อเสนอแนะแบบเพื่อปรับปรุงเครื่องมือ กรุณาใช้แบบฟอร์มข้อเสนอแนะที่สามารถเข้าถึงได้ผ่านลิงก์ที่ด้านล่างของหน้าเพื่อตรวจสอบปัญหาหรือเสนอการปรับปรุง
Technical Implementation
สำหรับนักพัฒนาที่สนใจในการดำเนินการตรวจสอบและสร้าง IBAN ในแอปพลิเคชันของตน นี่คือตัวอย่างโค้ดในภาษาต่างๆ:
IBAN Validation
1function validateIban(iban) {
2 // Remove spaces and convert to uppercase
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Check basic format
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Rearrange and convert letters to numbers
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 // Calculate 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// Example usage
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 (invalid check digits)
32
1def validate_iban(iban):
2 # Remove spaces and convert to uppercase
3 iban = iban.replace(' ', '').upper()
4
5 # Basic format check
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Move first 4 characters to the end
10 rearranged = iban[4:] + iban[:4]
11
12 # Convert letters to numbers (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 # Check if mod 97 equals 1
21 return int(converted) % 97 == 1
22
23# Example usage
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 (invalid check digits)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Remove spaces and convert to uppercase
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Basic format check
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Move first 4 characters to the end
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Convert letters to numbers
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 // Calculate 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
IBAN Generation
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 // Add more countries as needed
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Country code ${countryCode} not supported`);
11 }
12
13 // Generate random BBAN based on country pattern
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 // Generate numeric characters
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Generate alphabetic characters
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 // Generate alphanumeric characters
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 // Calculate check digits
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Create initial IBAN with '00' as check digits
55 const initialIban = countryCode + '00' + bban;
56
57 // Rearrange and convert letters to numbers
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 // Calculate 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// Example usage
77console.log(generateIban('DE')); // Generates a valid German IBAN
78console.log(generateIban('GB')); // Generates a valid UK 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 # Add more countries as needed
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Country code {country_code} not supported")
14
15 # Generate random BBAN based on country format
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': # Numeric
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alphabetic
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alphanumeric
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Calculate check digits
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 # Create string for check digit calculation
40 check_string = bban + country_code + '00'
41
42 # Convert letters to numbers (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 # Calculate 98 minus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Example usage
57print(generate_iban('DE')) # Generates a valid German IBAN
58print(generate_iban('GB')) # Generates a valid UK IBAN
59
References
- ISO 13616-1:2007 - "บริการทางการเงิน - หมายเลขบัญชีธนาคารระหว่างประเทศ (IBAN) - ส่วนที่ 1: โครงสร้างของ IBAN"
- European Committee for Banking Standards (ECBS) - "IBAN: หมายเลขบัญชีธนาคารระหว่างประเทศ"
- SWIFT - "ทะเบียน IBAN"
- European Payments Council - "IBAN และรหัสผู้ให้กู้"
- Bank for International Settlements - "ระบบการชำระเงิน การเคลียร์ และการตั้งถิ่นฐาน"
- European Central Bank - "Single Euro Payments Area (SEPA)"
- ISO 9362 - "การธนาคาร - ข้อความการสื่อสารทางการธนาคาร - รหัสผู้ระบุธุรกิจ (BIC)"
- ISO 7064 - "เทคโนโลยีสารสนเทศ - เทคนิคความปลอดภัย - ระบบอักขระตรวจสอบ"
Conclusion
เครื่องมือสร้างและตรวจสอบ IBAN นำเสนอวิธีการที่ง่ายและมีประสิทธิภาพสำหรับการทดสอบและวัตถุประสงค์ทางการศึกษาที่เกี่ยวข้องกับตัวระบุธนาคารระหว่างประเทศ โดยการเสนอความสามารถทั้งในการสร้างและการตรวจสอบในส่วนติดต่อที่ใช้งานง่าย มันช่วยขจัดความจำเป็นในการกำหนดค่าอย่างซับซ้อนหรือการรวมระบบจากบุคคลที่สาม
ไม่ว่าคุณจะพัฒนาแอปพลิเคชันการเงิน ทดสอบระบบการชำระเงิน หรือเรียนรู้เกี่ยวกับมาตรฐานการธนาคารระหว่างประเทศ เครื่องมือนี้เสนอวิธีการที่ตรงไปตรงมาในการทำงานกับ IBAN การตรวจสอบอย่างครอบคลุมช่วยให้แน่ใจว่า IBAN ที่สร้างขึ้นทั้งหมดมีความสมบูรณ์ตามโครงสร้างและปฏิบัติตามมาตรฐานระหว่างประเทศ
ลองสร้างหรือตรวจสอบ IBAN ตอนนี้เพื่อสัมผัสกับความสามารถของเครื่องมือด้วยตัวคุณเอง!
ข้อเสนอแนะแสดงความคิดเห็น
คลิกที่ข้อเสนอแนะแสดงความคิดเห็นเพื่อเริ่มให้ข้อเสนอแนะแก่เครื่องมือนี้
เครื่องมือที่เกี่ยวข้อง
ค้นพบเครื่องมือเพิ่มเติมที่อาจมีประโยชน์สำหรับการทำงานของคุณ