【问题标题】:Can't find the digit check algorithm找不到数字校验算法
【发布时间】:2017-07-02 00:30:19
【问题描述】:

我找不到用于计算我的银行参考的 2 位校验位的算法。

一些例子

0404 3295 60983
0707 3328 25810
0900 9907 32991
0900 8912 91695
0707 2268 89938
0808 1153 45010
0808 0964 91963
0900 6632 28254
0707 2802 64344
0909 0256 01882
0707 3004 54587
0707 3164 30453
0404 2914 27064
0707 3306 30672
0404 1467 53870
0808 1733 55047
0808 2349 11733
0707 3158 51956
0707 3346 64573
0404 3396 83589

由于用户帐户,我知道最后 2 位是校验位。

for example:
Area: 040
User account: 43266008
Bank reference: 0404 3266 00828
so... 28 <- Check digits.

我尝试了 Mod 97 和 Base 10 (Luhn)

我不知道其他算法,例如: Mod 22,Base 36,算法 45

¿有什么想法吗?

对我的样本进行分组和计数,如果有帮助的话:

CheckDigits SamplesCount
01  2720
02  2698
03  2743
04  2719
05  2820
06  2737
07  2795
08  2737
09  2760
10  2778
11  2787
12  2780
13  2779
14  2658
15  2711
16  2770
17  2718
18  2675
19  2669
20  2675
21  2780
22  2737
23  2721
24  2723
25  2631
26  2694
27  2615
28  2800
29  2903
30  2718
31  2712
32  2733
33  2813
34  2782
35  2820
36  2754
37  2686
38  2755
39  2774
40  2688
41  2738
42  2799
43  2669
44  2774
45  2754
46  2623
47  2684
48  2711
49  2740
50  2735
51  2658
52  2793
53  2752
54  2782
55  2818
56  2718
57  2735
58  2738
59  2755
60  2716
61  2818
62  2738
63  2716
64  2710
65  2607
66  2640
67  2799
68  2763
69  2827
70  2968
71  2734
72  2679
73  2758
74  2730
75  2856
76  2713
77  2768
78  2694
79  2684
80  2693
81  2798
82  2739
83  2809
84  2754
85  2710
86  2833
87  2820
88  2739
89  2733
90  2739
91  2745
92  2805
93  2686
94  2771
95  2758
96  2754
97  2688

示例:

Sears 和 Oxxo 的参考有一个校验位,即 Mod10 (Luhn)。

(可以在这个页面计算luhn校验位:https://planetcalc.com/2464/

Reference: 0900 5719 759
Check digit (Luhn): 3

我如何获得 88?

【问题讨论】:

  • 什么是“银行参考”?这些价值观从何而来? (它没有任何文档吗?)
  • 银行参考号是公司提供给您的号码,用于在银行付款。在这种情况下,是针对墨西哥的一家手机公司。他们将此号码提供给客户,以便他们在银行或某些商店支付服务费用。
  • 此值来自某些客户端。但不管数字是多少。重要的部分是“校验位”……就像信用卡一样……它们最后有一个校验位,所以你在写的时候不会错过任何数字,信用卡使用 Luhn 算法。有的银行用的是Mod 97,都是常用的算法……就是找不到这家公司用的是什么算法。
  • 你试过问他们吗?它可能不是标准算法。
  • 如果银行支持电子银行,那么您可能会在客户端找到对输入的 javascript 验证(例如,如果他们在将输入发送到客户端之前检查输入是否在客户端有效)进行关键检查的服务器)。

标签: algorithm reference modulus luhn check-digit


【解决方案1】:

也许这会有所帮助,它包括您描述的方法: https://docs.oracle.com/cd/E18727_01/doc.121/e13483/T359831T498954.htm

【讨论】:

  • 看起来很正确,但我没有看到使用 98 作为除数的模运算的变体(并且带着问题查看帖子的“分组”部分,看起来那是用过什么)
猜你喜欢
  • 2011-01-20
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 2017-02-23
  • 2021-07-30
相关资源
最近更新 更多