一种基于Luhn算法特殊号码逆向确定方法技术

技术编号:38613763 阅读:9 留言:0更新日期:2023-08-26 23:41
本发明专利技术提供的一种基于Luhn算法特殊号码逆向确定方法,所述逆向确定方法包括:确定卡bin的固定值;确定需要的连续相同尾数及自定义位数;计算出最左调节位值;根据所述最左调节位值生成所需连续号码。采用逆向推到,将不确定的校验位变为确定号码,提升银行业的个性化定制能力,提升客户体验和业务竞争力。提升客户体验和业务竞争力。提升客户体验和业务竞争力。

【技术实现步骤摘要】
一种基于Luhn算法特殊号码逆向确定方法


[0001]本专利技术涉及数据计算领域,尤其涉及一种基于Luhn算法特殊号码逆向确定方法。

技术介绍

[0002]在银行业务中,常使用Luhn算法对卡号进行校验和计算卡号最后一位校验位,但在实际工作中,这种先有卡号再计算校验位的方法,往往不适用于客户的个性化定制,优质客户往往有定制卡号,靓号的需求,这时Luhn算法带来的不确定性就不利于卡号的定制。
[0003]现有技术中存在的技术问题是,无法提供号码定制或只提供不包含校验位的号码定制。

技术实现思路

[0004]鉴于上述问题,提出了本专利技术以便提供克服上述问题或者至少部分地解决上述问题的一种基于Luhn算法特殊号码逆向确定方法。
[0005]根据本专利技术的一个方面,提供了一种基于Luhn算法特殊号码逆向确定方法,所述逆向确定方法包括:
[0006]确定卡bin的固定值;
[0007]确定需要的连续相同尾数及自定义位数;
[0008]计算出最左调节位值;
[0009]根据所述最左调节位值生成所需连续号码。
[0010]可选的,所述确定卡bin的固定值具体包括:
[0011]卡号左起前六位是发卡机构标识代码BIN,由6位数字组成;发卡机构标识代码号由中国银联负责分配、确认和管理;
[0012]卡号第七位起是发卡机构自定义位,由6至12位数字组成,发卡机构自行业务规则赋值;
[0013]卡号的最后一位是校验码,根据校验位前的数字取值按Luhn方程计算得出。
[0014]本专利技术提供的一种基于Luhn算法特殊号码逆向确定方法,所述逆向确定方法包括:确定卡bin的固定值;确定需要的连续相同尾数及自定义位数;计算出最左调节位值;根据所述最左调节位值生成所需连续号码。采用逆向推到,将不确定的校验位变为确定号码,提升银行业的个性化定制能力,提升客户体验和业务竞争力。
[0015]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0016]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本
领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0017]图1为本专利技术实施例提供的一种基于Luhn算法特殊号码逆向确定方法的流程图。
具体实施方式
[0018]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0019]本专利技术的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
[0020]下面结合附图和实施例,对本专利技术的技术方案做进一步的详细描述。
[0021]如图1所示,一种基于Luhn算法特殊号码逆向确定方法包括:确定卡bin的固定值;确定需要的连续相同尾数及自定义位数;计算出最左调节位值;根据所述最左调节位值生成所需连续号码。
[0022]本专利技术针对Luhn算法的反向计算,首先,说明Luhn算法正向计算的方法,银行卡号举例:
[0023]卡号左起前六位是发卡机构标识代码(BIN),由6位数字组成。BIN号由中国银联负责分配、确认和管理;
[0024]卡号第七位起是发卡机构自定义位,由6至12位数字组成,发卡机构自行业务规则赋值;
[0025]卡号的最后一位是校验码,根据校验位前的数字(含BIN)取值按Luhn方程计算得出。
[0026]前6位为各银行固定值,那么在Luhn算法中就是一个常量,计算中不起决定作用,以常见16位卡号为例进行计算,按照Luhn算法,要将偶数位乘以2,如果是双位数,就将个位和十位相加,最后将所有数字相加。那么,首先可以得到固定卡bin相加的值。
[0027]表中第一行位预设卡号,第二行为偶数位运算结果,第三行为计算校验位后卡号,第四行为本专利技术计算的卡号。
[0028][0029]表格中偶数位标识为绿色,那么固定卡bin的和相当于6+4+2+3+0+9=24,假设想要的卡号是多个9,首先确定的是卡号的前6位固定,校验位需要为9,自定义位数最多位9个9,最理想情况卡号为6226099999999999,但实际通过验算,校验位不为9。
[0030]校验位=10

(24+9+9+9+9+9+9+9+9+9)%10=5。
[0031]不满足对卡号包含校验位的要求,变换公式,校验位预设成9,n为最大的9的位数,x是对于不能为9的加数,即把原本不能为9的校验位变成9,把变化的变量放到可变数字的最左面,让后面数字取得最大的连续性。
[0032]9=10

(24+n*9+x)%10
[0033](24+n*9+x)%10=1
[0034]包含两个变量,运用倒序代入法运算,首先全为9不满足,再运算9的最大位数8,等式为:
[0035](24+8*9+x)%10=1
[0036](96+x)%10=1
[0037]x等于5即满足条件。
[0038]计算得到了尾号8位相同数字的卡号,算法同样适用于其它尾号需求与不同位数的算法。
[0039]再次总结公式,通过调节最左位的数值满足最大的相同尾数,先列出所有位数的乘2的数值
[0040]原数字为偶数位乘2超过10个位十位相加00012224436648851016123714581679189
[0041]看到最左的数字如果小于等于4,与2相乘不会产生十位,那么把公司变成两组,第一组,当尾数要求小于4,设尾数为X,最左调节位为Y,不包含校验位位数为9,Y小于等于9,大于等于0。
[0042]公式为(X+2X+X+2X+X+2X+X+2X+Y+24)%10=10

X
[0043](12X+Y+24)%10+X=10
[0044]只需要代入所需的位数即可算出最左调节位的数字,当需要尾数为4。
[0045](48+Y+24)%10+4=10
[0046]轻松算出Y等于4,当需要尾数为3
[0047](36+Y+24)%10+3=10Y等于7
[0048]当需要的尾数大于4,公式较为复杂,用一个K代表,偶数位时的运算结果(X+K+X+K+X+K+X+K+Y+24)%10=10

X
[0049](4X+4K本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Luhn算法特殊号码逆向确定方法,其特征在于,所述逆向确定方法包括:确定卡bin的固定值;确定需要的连续相同尾数及自定义位数;计算出最左调节位值;根据所述最左调节位值生成所需连续号码。2.根据权利要求1所述的一种基于Luhn算法特殊号码逆向确定方法,其特征在于,所述确定卡bi...

【专利技术属性】
技术研发人员:马千赵瑞兰邹鹏
申请(专利权)人:北银金融科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1