跳至内容

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)22DE2!n8!n10!nDE89370400440532013000
英国(GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
法国(FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
西班牙(ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
意大利(IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456
荷兰(NL)18NL2!n4!a10!nNL91ABNA0417164300
瑞士(CH)21CH2!n5!n12!cCH9300762011623852957
奥地利(AT)20AT2!n5!n11!nAT611904300234573201
比利时(BE)16BE2!n3!n7!n2!nBE68539007547034
波兰(PL)28PL2!n8!n16!nPL61109010140000071219812874

在结构列中,n 表示数字,a 表示字母,c 表示字母或数字。每个字母前的数字表示该部分包含的字符数。例如,英国格式中的 4!a6!n8!n 表示四个字母、六位数字,再加八位数字。

如何计算 IBAN 校验数字(MOD 97 公式)

校验数字使用 ISO 7064 中的算法计算,该算法称为 MOD 97-10。要为新的 IBAN 生成校验数字:

  1. 写下 BBAN,后接国家代码,再后接占位符 00。
  2. 将每个字母替换为数字:A = 10、B = 11,依此类推,直到 Z = 35。数字保持不变。
  3. 将整个结果视为一个长数字,求其除以 97 后的余数。
  4. 用 98 减去该余数。所得结果就是两位校验数字。如果结果只有一位,则在前面补零。

公式为:check digits = 98 − (N mod 97),其中 N 是根据第 1 步和第 2 步构成的数字字符串。

示例:计算德国 IBAN 的校验数字

取银行代码 37040044 和账号 0532013000。

  1. BBAN + 国家代码 + 00:370400440532013000 + DE + 00 = 370400440532013000DE00
  2. 替换字母:D = 13、E = 14,因此字符串变为 370400440532013000131400。
  3. 该数字除以 97 后的余数为 9。
  4. 98 − 9 = 89。

校验数字为 89,因此完整的 IBAN 是 DE89370400440532013000。

如何验证 IBAN

要检查现有 IBAN 是否有效,流程按相反方向进行:

  1. 删除所有空格,并将最前面的四个字符(国家代码和校验数字)移到字符串末尾。
  2. 使用相同的 A = 10 至 Z = 35 规则,将每个字母替换为数字。
  3. 求所得数字除以 97 后的余数。
  4. 只有当余数等于 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 则将付款路由到正确的账户。

参考文献

  1. ISO 13616-1:2007 — IBAN 结构规范。
  2. SWIFT IBAN Registry — 按国家列出的官方 IBAN 格式。
  3. ISO 7064:2003 — 校验字符系统,包括 MOD 97-10。