我目前正在开发一个支付系统,用户可以使用 SEPA-debit 支付服务费用。用户可以输入一次数据,然后可以在将来进行另一次付款时选择相同的付款方式。
因此,为了让用户选择正确的账户进行借记,我需要显示一些关于她/他的账户的信息。在信用卡的世界里,除了卡号的最后 4 位数字外,所有数字都被屏蔽是很正常的,例如 XXXX-XXXX-XXXX-1234
显示 IBAN 号码时,我是否还应该隐藏除最后 4 位以外的所有数字?我应该为 BIC 做同样的事情,还是显示完整的 BIC 号码是否安全?
我目前正在开发一个支付系统,用户可以使用 SEPA-debit 支付服务费用。用户可以输入一次数据,然后可以在将来进行另一次付款时选择相同的付款方式。
因此,为了让用户选择正确的账户进行借记,我需要显示一些关于她/他的账户的信息。在信用卡的世界里,除了卡号的最后 4 位数字外,所有数字都被屏蔽是很正常的,例如 XXXX-XXXX-XXXX-1234
显示 IBAN 号码时,我是否还应该隐藏除最后 4 位以外的所有数字?我应该为 BIC 做同样的事情,还是显示完整的 BIC 号码是否安全?
与信用卡号码不同,IBAN 号码并非秘密。如果有人知道您的银行帐号,他们可以从中获得 IBAN 号码。他们需要知道您的银行帐号才能向您付款。
同样,BIC 也不是秘密。
话虽如此,有时可以使用银行帐号和其他识别信息来订购商品,因此最好不要显示有关银行帐号/ IBAN 的更多信息而不是必要的信息。这也是用户隐私和用户体验之间的权衡。
(示例场景是有人伤害您,也许是为了报复。他们获取您的银行帐号,一些其他个人信息,并开始以您的名义订购东西。显然这是非法和愚蠢的,但这并非不可能。您可以消除伤害,但您希望以更愉快的方式花费时间和精力)。
帐号几乎总是 IBAN 的最后一个数字,并且通常帐户的最后一个数字标识用户可能在同一家银行拥有的不同帐户。根据您在哪些国家/地区开展业务,仅显示最后 3 位或 4 位数字以及银行 ID 就足够了。
在不了解国家/地区细节的情况下,我看不出有什么区别,为什么信用卡号码是秘密的,而 IBAN 不是。知道其中的任何一个(好吧,如果是 IBAN,您还需要一个名字),一个人可以付款,在某些国家通过互联网订购商品(例如,在德国从亚马逊订购,只需要 IBAN 和名字)。请参阅如果有人知道我的 IBAN 和个人详细信息,他们可以从我的银行帐户中窃取资金吗?.
因此,我建议保护 IBAN 的帐号和 BIC 部分,因为如果您只屏蔽银行账户的太少数字,使用 IBAN 校验和并知道典型的帐号(例如,有些银行的最后 2 个帐号数字是总是 00)对于特定的银行(用 BIC 标识),有人可以暴力破解帐号。
让我们以德语 IBAN 为例。它总是看起来像
DEcc bbbb bbbb aaaa aaaa aa
DE - 国家代码,cc - 校验和,b - BIC 部分,a - 帐号部分。
假设您将其掩盖为:
DEcc bbbb bbbb XXXX aaaa XX
在我看来,它一点都不好,因为现在我知道校验和和 BIC。从BIC,我可以知道银行(1)没有那么多账户,(2)最后2位是为其他账户类型保留的,例如00为主账户,01可能是合作伙伴账户,02可能是长期账户押金等。因此,该银行和运营/结算账户的最后 2 位数字始终为 00。
现在我们还剩 4 位数。但是从(1)我得出结论,该银行的客户少于 1,000,000。比这家银行的账户总是看起来像
00aa aaaa 00
所以现在我只需要猜测前两个'a'-s。但是我有一个校验和,这很容易。如果银行有超过一百万的客户,它仍然可以有一个系统,其中第一位数字标识国家地区,开户地点等等。