IBAN Validator
Supported IBAN Countries
| Country | Code | Length | Example |
|---|---|---|---|
| Albania | AL | 28 | AL35202111090000000001234567 |
| Andorra | AD | 24 | AD1400080001001234567890 |
| Austria | AT | 20 | AT483200000012345864 |
| Belgium | BE | 16 | BE71096123456769 |
| Bosnia and Herzegovina | BA | 20 | BA393385804800211234 |
| Bulgaria | BG | 22 | BG18RZBB91550123456789 |
| Croatia | HR | 21 | HR1723600001101234565 |
| Cyprus | CY | 28 | CY21002001950000357001234567 |
| Czech Republic | CZ | 24 | CZ5508000000001234567899 |
| Denmark | DK | 18 | DK9520000123456789 |
| Estonia | EE | 20 | EE471000001020145685 |
| Finland | FI | 18 | FI1410093000123458 |
| France | FR | 27 | FR7630006000011234567890189 |
| Germany | DE | 22 | DE75512108001245126199 |
| Greece | GR | 27 | GR9608100010000001234567890 |
| Hungary | HU | 28 | HU93116000060000000012345676 |
| Iceland | IS | 26 | IS750001234567891234567890 |
| Ireland | IE | 22 | IE64IRCE92050112345678 |
| Italy | IT | 27 | IT60X0542811101000000123456 |
| Latvia | LV | 21 | LV97HABA0012345678910 |
| Liechtenstein | LI | 21 | LI7408806123456789012 |
| Lithuania | LT | 20 | LT601010012345678901 |
| Luxembourg | LU | 20 | LU120010001234567891 |
| Malta | MT | 31 | MT31MALT01100000000000000000123 |
| Netherlands | NL | 18 | NL02ABNA0123456789 |
| Norway | NO | 15 | NO8330001234567 |
| Poland | PL | 28 | PL10105000997603123456789123 |
| Portugal | PT | 25 | PT50002700000001234567833 |
| Romania | RO | 24 | RO09BCYP0000001234567890 |
| Slovakia | SK | 24 | SK8975000000000012345671 |
| Slovenia | SI | 19 | SI56192001234567892 |
| Spain | ES | 24 | ES7921000813610123456789 |
| Sweden | SE | 24 | SE1412345678901234567890 |
| Switzerland | CH | 21 | CH5604835012345678009 |
| United Kingdom | GB | 22 | GB33BUKB20201512345678 |
技术详情
IBAN 验证器的工作原理
工具功能
IBAN 验证器可检查和验证国际银行账户号码(IBAN)的格式正确性和校验和有效性。工具验证两个层面:首先检查 IBAN 格式是否符合该国标准(国家代码 + 校验位 + BBAN),然后执行 MOD 97-10 校验算法验证数据的完整性。支持 75+ 个国家的 IBAN 格式验证,输出验证结果以及账户的 BIC(银行识别码)、所属银行和国家信息。即使 IBAN 在格式上正确,校验和失败也表明数据存在输入错误或伪造。
常见开发者使用场景
IBAN 校验算法 MOD 97-10
IBAN 的 MOD 97-10 验证步骤(ISO 13616):
- 步骤 1 重排:将 IBAN 的前 4 个字符(国家代码 + 校验位)移到字符串末尾
- 步骤 2 字母转数字:将每个字母替换为其在字母表中的位置 + 9(A=10, B=11, ..., Z=35),因为 MOD 97 需要纯数字输入
- 步骤 3 大数取模:对转换后的大数(可达 30+ 位)进行 mod 97 运算。如果结果为 1,IBAN 校验和有效
- 分段计算优化:为了避免大整数溢出,算法将长数字串分段(每 9 位)迭代取模,结果等价于整个大数取模
常见陷阱与注意事项
- 国家特定格式:每个国家的 BBAN 长度和格式不同——德国 IBAN 22 位、英国 22 位、法国 27 位。通用验证器必须维护完整的国家格式规则表。
- BIC 关联:IBAN 验证通过不代表银行账户真实存在——只确认格式和校验正确。实际转账时还需验证 BIC/SWIFT 码的正确性。
- 空格处理:许多银行系统打印 IBAN 时每 4 位加空格分组以提高可读性。验证器应该忽略输入中的空格、连字符和制表符。
- 非 IBAN 国家:美国、加拿大、中国、澳大利亚等国家不使用 IBAN 系统。对于这些国家需要账号号码+路由号、SWIFT 码等替代标识。
何时使用此工具而非代码
在支付系统中验证用户输入的 IBAN、批量清洗银行账户数据、或排查国际转账格式问题时使用此工具。对于需要服务端自动验证的场景,推荐使用 iban.js 或 ibantools 库(JavaScript)或 python-stdnum 的 iban 模块。