如何计算IBAN国家校验位?

时间:2013-11-09 18:12:14

标签: java check-digit iban

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

2 个答案:

答案 0 :(得分:6)

当你需要建造/解构西班牙伊班时,西班牙是一个有两组校验位的国家,按以下顺序计算: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< - 第二组校验位(笑)

答案 1 :(得分:0)

国家标志数字在国家标准中定义,每个国家都有不同的标准。有些国家有一个校验位,有些国家有两个,有些则没有。

例如,

西班牙银行帐号有两个校验位。第一个是基于4位数的分支和办公室代码,第二个是根据10位数的帐号计算的。您可以在任何与银行IT相关的文档中找到它,例如the ones here,但基本上您将每个数字乘以2 mod 11的幂,将得到的数字加在一起,并在除以11时取余数。 Wikipedia entry具有用于验证和计算校验位的示例代码。

其他国家/地区使用其他方法,例如Luhn algorithm