跳至内容

IBAN生成器和验证工具 - 测试银行数据

该工具可为10个欧洲国家生成符合ISO 13616标准格式的有效测试用IBAN国际银行账号,也可对已有IBAN执行MOD 97校验位算法以验证其合法性并定位错误位置。所有计算均在浏览器本地完成,不会将任何数据上传至服务器,适合银行软件开发、支付系统测试和金融数据校验等场景使用。

IBAN生成器和验证器

加载计算器...
📚

文档

IBAN 生成与验证工具

IBAN(国际银行账号)是用于在国际付款中识别银行账户的标准代码。此工具可为十个欧洲国家生成格式正确的随机测试 IBAN,并使用银行采用的 MOD 97 校验位公式检查现有 IBAN 是否有效。

什么是 IBAN?

在 IBAN 出现之前,每个国家都使用自己的银行账号格式。跨境付款经常失败,因为在一个国家有效的号码,到了另一个国家就毫无意义。国际标准化组织(ISO)制定了 IBAN 标准 ISO 13616 来解决这一问题。每个 IBAN 都带有一个国家代码和两位校验位,计算机据此可以在付款发出之前发现大多数输入错误。

IBAN 由三部分组成:

  • 国家代码:两个字母,例如德国的 DE 或英国的 GB。
  • 校验数字:使用下文介绍的 MOD 97 公式计算出的两位数字。
  • 基本银行账号(BBAN):特定国家使用的代码段,通常包含银行代码和账号,有时还包含分行代码。

IBAN 最多可包含 34 个字符,但大多数欧洲的 IBAN 长度为 16 至 28 个字符。长度和内部结构完全取决于国家。德国的 IBAN 为 22 个字符:国家代码、两位校验位、8 位银行代码和 10 位账号。法国的 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,还会拆分出分行代码。

由于国家代码位于前两个字符中,验证器无需手动选择国家;它会读取代码并自动应用相应规则。

所有处理都在浏览器中进行。不会有任何 IBAN 被发送到服务器或存储在任何位置。

此工具对测试的用途

处理付款的软件需要使用行为类似真实 IBAN、但不关联真实账户的测试数据。随机数字字符串通常无法通过 MOD 97 校验,因此基于此类字符串的测试可能因错误原因失败:问题出在测试数据,而不是被测试代码中的漏洞。生成格式正确的 IBAN 可以避免这一问题,因为它能通过生产系统执行的相同验证,同时不与任何实际银行账户关联。

常见问题

IBAN 有什么用途? 它用于标识国际和国内转账所涉及的具体银行账户,其格式便于计算机在付款发出之前检查错误。

本工具生成的 IBAN 与真实银行账户有关联吗? 没有关联。它们是符合正确格式并通过 MOD 97 校验的随机号码,但不对应任何真实账户。只应用于测试、开发或教学,绝不能用于实际转账。

为什么不同国家的 IBAN 长度不同? 在 IBAN 标准把各国格式统一到同一套国家代码和校验位体系之前,每个国家都设计了自己的基本银行账号(BBAN)格式。ISO 13616 规定了每个国家的长度,但没有强制各国使用相同的内部结构。

IBAN 中的空格重要吗? 不重要。IBAN 为便于阅读,常按每四个字符一组显示,例如 DE89 3704 0044 0532 0130 00,但空格对验证没有影响。DE89370400440532013000 就是去掉空格后的同一个 IBAN。

本工具支持哪些国家? 十个欧洲国家:德国、英国、法国、西班牙、意大利、荷兰、瑞士、奥地利、比利时和波兰。

IBAN 与 SWIFT/BIC 代码有什么区别? SWIFT/BIC 代码标识一家银行或银行的某个分行。IBAN 标识该银行的某个具体账户。国际转账往往两者都需要:SWIFT/BIC 代码把付款送到正确的银行,IBAN 则把它送到正确的账户。

参考文献

  1. 德意志联邦银行。Der technische Standard (SEPA)。IBAN 和 BIC 技术标准(德语) — IBAN 最多有 34 个字符;德国的 IBAN 有 22 个:国家代码 DE、2 位校验位、8 位银行代码、10 位账号。
  2. 土耳其共和国中央银行。Communiqué on the International Bank Account Number。IBAN 通函 — 校验位采用 ISO 7064 的 MOD 97-10 方法:字母转换为 A = 10 至 Z = 35,用 98 减去余数,有效的 IBAN 余数为 1。