IBAN生成器和验证工具 - 测试银行数据
该工具可为10个欧洲国家生成符合ISO 13616标准格式的有效测试用IBAN国际银行账号,也可对已有IBAN执行MOD 97校验位算法以验证其合法性并定位错误位置。所有计算均在浏览器本地完成,不会将任何数据上传至服务器,适合银行软件开发、支付系统测试和金融数据校验等场景使用。
IBAN生成器和验证器
文档
IBAN 生成与验证工具
IBAN(国际银行账号)是用于在国际付款中识别银行账户的标准代码。此工具可为十个欧洲国家生成格式正确的随机测试 IBAN,并使用银行采用的 MOD 97 校验位公式检查现有 IBAN 是否有效。
什么是 IBAN?
在 IBAN 出现之前,每个国家都使用自己的银行账号格式。跨境付款经常失败,因为在一个国家有效的号码在另一个国家可能毫无意义。国际标准化组织(ISO)制定了 IBAN 标准 ISO 13,616 来解决这一问题。每个 IBAN 都包含国家代码和两位校验数字,使计算机能够在付款发送前发现大多数输入错误。
IBAN 由三部分组成:
- 国家代码:两个字母,例如德国的
DE或英国的GB。 - 校验数字:使用下文介绍的 MOD 97 公式计算出的两位数字。
- 基本银行账号(BBAN):特定国家使用的代码段,通常包含银行代码,有时还包含分行代码和账号。
IBAN 最多可包含 34 个字符,但大多数欧洲国家的 IBAN 长度为 16 至 28 个字符。长度和内部结构完全取决于国家。德国 IBAN 包含 22 个字符,法国 IBAN 包含 27 个字符。
各国 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 |
| 荷兰(NL) | 18 | NL2!n4!a10!n | NL91ABNA0417164300 |
| 瑞士(CH) | 21 | CH2!n5!n12!c | CH9300762011623852957 |
| 奥地利(AT) | 20 | AT2!n5!n11!n | AT611904300234573201 |
| 比利时(BE) | 16 | BE2!n3!n7!n2!n | BE68539007547034 |
| 波兰(PL) | 28 | PL2!n8!n16!n | PL61109010140000071219812874 |
在结构列中,n 表示数字,a 表示字母,c 表示字母或数字。每个字母前的数字表示该部分包含的字符数。例如,英国格式中的 4!a6!n8!n 表示四个字母、六位数字,再加八位数字。
如何计算 IBAN 校验数字(MOD 97 公式)
校验数字使用 ISO 7064 中的算法计算,该算法称为 MOD 97-10。要为新的 IBAN 生成校验数字:
- 写下 BBAN,后接国家代码,再后接占位符
00。 - 将每个字母替换为数字:A = 10、B = 11,依此类推,直到 Z = 35。数字保持不变。
- 将整个结果视为一个长数字,求其除以 97 后的余数。
- 用 98 减去该余数。所得结果就是两位校验数字。如果结果只有一位,则在前面补零。
公式为:check digits = 98 − (N mod 97),其中 N 是根据第 1 步和第 2 步构成的数字字符串。
示例:计算德国 IBAN 的校验数字
取银行代码 37040044 和账号 0532013000。
- BBAN + 国家代码 +
00:370400440532013000+DE+00=370400440532013000DE00 - 替换字母:D = 13、E = 14,因此字符串变为
370400440532013000131400。 - 该数字除以 97 后的余数为 9。
- 98 − 9 = 89。
校验数字为 89,因此完整的 IBAN 是 DE89370400440532013000。
如何验证 IBAN
要检查现有 IBAN 是否有效,流程按相反方向进行:
- 删除所有空格,并将最前面的四个字符(国家代码和校验数字)移到字符串末尾。
- 使用相同的 A = 10 至 Z = 35 规则,将每个字母替换为数字。
- 求所得数字除以 97 后的余数。
- 只有当余数等于 1 时,该 IBAN 才有效。
这一规则可以发现几乎所有常见的数据输入错误,包括单个数字错误或两个数字对调,因为更改任何字符几乎总会改变余数。
在执行 MOD 97 校验之前,此工具还会验证国家代码是否已识别、IBAN 是否具有该国要求的准确长度,以及字母和数字是否只出现在该国格式允许的位置。每项检查都会生成单独的错误消息,因此失败时会指出具体问题,而不是只显示笼统的“无效”结果。
使用工具
生成器选项卡:从下拉菜单中选择国家,然后点击“生成 IBAN”。工具会按照该国的正确格式生成随机 BBAN,计算匹配的校验数字,并显示包含各部分明细的结果。“复制到剪贴板”按钮可复制完整的 IBAN。
验证器选项卡:输入或粘贴 IBAN,可以带空格,也可以不带空格。工具会在输入时进行检查,并显示其是否有效。对于有效的 IBAN,工具会显示国家代码、校验数字、银行代码、分行代码(该国格式包含时)和账号。
由于国家代码位于前两个字符中,验证器无需手动选择国家;它会读取代码并自动应用相应规则。
所有处理都在浏览器中进行。不会有任何 IBAN 被发送到服务器或存储在任何位置。
此工具对测试的用途
处理付款的软件需要使用行为类似真实 IBAN、但不关联真实账户的测试数据。随机数字字符串通常无法通过 MOD 97 校验,因此基于此类字符串的测试可能因错误原因失败:问题出在测试数据,而不是被测试代码中的漏洞。生成格式正确的 IBAN 可以避免这一问题,因为它能通过生产系统执行的相同验证,同时不与任何实际银行账户关联。
常见问题
IBAN 用于什么? 它使用一种计算机可在付款发送前检查错误的格式,识别用于国际和国内转账的特定银行账户。
此工具生成的 IBAN 与真实银行账户有关联吗? 没有。它们是符合正确格式并通过 MOD 97 校验的随机号码,但不对应任何真实账户。它们只能用于测试、开发或教学,绝不能用于实际转账。
为什么不同国家的 IBAN 长度不同? 每个国家在 IBAN 标准将各国格式统一到一个国家代码和校验数字体系之前,都设计了自己的基本银行账号(BBAN)格式。ISO 13,616 规定了每个国家的长度,但没有强制所有国家采用相同的内部结构。
IBAN 中的空格有影响吗? 没有。IBAN 通常按四个字符一组显示以便阅读,例如 DE89 3704 0044 0532 0130 00,但空格不会影响验证。DE89370400440532013000 是删除空格后的同一个 IBAN。
此工具支持哪些国家? 十个欧洲国家:德国、英国、法国、西班牙、意大利、荷兰、瑞士、奥地利、比利时和波兰。
IBAN 与 SWIFT/BIC 代码有什么区别? SWIFT/BIC 代码用于识别银行或银行分行。IBAN 用于识别该银行中的某个特定账户。国际转账通常需要两者:SWIFT/BIC 代码将付款路由到正确的银行,IBAN 则将付款路由到正确的账户。
参考文献
- ISO 13616-1:2007 — IBAN 结构规范。
- SWIFT IBAN Registry — 按国家列出的官方 IBAN 格式。
- ISO 7064:2003 — 校验字符系统,包括 MOD 97-10。