如何计算 IBAN 国家校验位



在维基百科之后,我正在开发一个Java应用程序,用于计算和验证来自不同国家的IBAN。一些 BBAN 有一个国家校验位,但我找不到任何关于如何计算它的文档。我在哪里可以找到"国家校验位"的算法?我对"iban 校验位"不感兴趣,但对国家相关的校验位感兴趣。

当您需要构造/解构西班牙伊班时,西班牙是一个有两组校验位的国家,按以下顺序计算:45, 91

ES91 2100 0418 4502 0005 1332

国家代码(2 个字符"ES")校验位(2 个字符)银行标识符(4 个字符)分行代码(4 个字符)校验位(2 个字符)帐号(10 个字符)

分步指南1. 首先,将 ES 更改为其数字等效值 E=14, S=28 并将此值附加 00,因此 142800现在,要获取第一组 iban 校验位,请将帐号添加到步骤 1:0200051332142800 中的号码

  1. 现在 mod 97 该值,然后从 98 中减去余数。 0200051332142800 mod 97 = 53, 98 - 53 = 45 <- 第一组校验位!(微笑)

  2. 如果最终得到一个数字,则应用前导零填充。

  3. 要获取第二个 iban 校验位,请将银行 ID (2100) 附加到分行 ID(0418) 然后是帐号,加上第一个校验位 (450200051332),然后是步骤 1 中的值,总计:21000418450200051332142800

  4. 再次 mod 97 该值,21000418450200051332 mod 97 = 7,98 -7 = 91 <- 第二组校验位(微笑)

国家校验位在国家标准中定义,每个国家都有不同的标准。有些国家/地区有一个校验位,有些国家/地区有两个校验位,而其他国家/地区则没有。

例如,西班牙银行帐号有两个校验位。第一个基于 4 位分行和办事处代码,第二个基于 10 位帐号计算。您可以在与银行 IT 相关的任何文档中找到它,例如这里的文档,但基本上您将每个数字乘以 2 mod 11 的幂,将结果数字相加,并在除以 11 时取其余数。维基百科条目具有用于验证和计算校验位的示例代码。

其他国家使用其他方法,例如Luhn算法。

最新更新