最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Luhn算法的銀行卡校驗規(guī)則

 更新時間:2022年05月19日 12:36:47   作者:流沙河  
這篇文章主要為大家介紹了基于Luhn算法的銀行卡校驗規(guī)則,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

案例:

當你輸入信用卡號碼的時候,有沒有擔心輸錯了而造成損失呢?其實可以不必這么擔心,因為并不是一個隨便的信用卡號碼都是合法的,它必須通過Luhn算法來驗證通過。

該校驗的過程:

1、從卡號最后一位數(shù)字開始,逆向將奇數(shù)位(1、3、5等等)相加。

2、從卡號最后一位數(shù)字開始,逆向將偶數(shù)位數(shù)字,先乘以2(如果乘積為兩位數(shù),則將其減去9),再求和。

3、將奇數(shù)位總和加上偶數(shù)位總和,結果應該可以被10整除。

例如,卡號是:5432123456788881

則奇數(shù)、偶數(shù)位(用紅色標出)分布:5432123456788881

奇數(shù)位和=35

偶數(shù)位乘以2(有些要減去9)的結果:16 2 6 1 5 7 7,求和=35。

最后35+35=70可以被10整除,認定校驗通過。

import java.util.Scanner;
//信用卡號校驗算法
public class Luhn {
 public static void main(String[] args) {
  System.out.println("Please input your credit card number:");
  Scanner input = new Scanner(System.in);
  int sumOdd = 0;
  int sumEven = 0;
  String number = input.next();
  int length = number.length();
  int[] wei = new int[length];
  for (int i = 0; i < number.length(); i++) {
   wei[i] = Integer.parseInt(number.substring(length - i - 1, length
     - i));// 從最末一位開始提取,每一位上的數(shù)值
   System.out.println("第" + i + "位數(shù)字是:" + wei[i]);
  }
  for (int i = 0; i < length / 2; i++) {
   sumOdd += wei[2 * i];
   if ((wei[2 * i + 1] * 2) > 9)
    wei[2 * i + 1] = wei[2 * i + 1] * 2 - 9;
   else
    wei[2 * i + 1] *= 2;
   sumEven += wei[2 * i + 1];
  }
  System.out.println("奇數(shù)位的和是:" + sumOdd);
  System.out.println("偶數(shù)位的和是:" + sumEven);
  if ((sumOdd + sumEven) % 10 == 0)
   System.out.println("Recept.");
  else
   System.out.println("Can not recept.");
 }
}

運行結果:

Please input your credit card number:
5432123456788881
第0位數(shù)字是:1
第1位數(shù)字是:8
第2位數(shù)字是:8
第3位數(shù)字是:8
第4位數(shù)字是:8
第5位數(shù)字是:7
第6位數(shù)字是:6
第7位數(shù)字是:5
第8位數(shù)字是:4
第9位數(shù)字是:3
第10位數(shù)字是:2
第11位數(shù)字是:1
第12位數(shù)字是:2
第13位數(shù)字是:3
第14位數(shù)字是:4
第15位數(shù)字是:5
奇數(shù)位的和是:35
偶數(shù)位的和是:35
Recept.

銀行卡校驗規(guī)則(Luhn算法)

Luhn檢驗數(shù)字算法(Luhn Check Digit Algorithm),也叫做模數(shù)10公式,是一種簡單的算法,用于驗證銀行卡、信用卡號碼的有效性的算法。對所有大型信用卡公司發(fā)行的信用卡都起作用,這些公司包括美國Express、護照、萬事達卡、Discover和用餐者俱樂部等。這種算法最初是在20世紀60年代由一組數(shù)學家制定,現(xiàn)在Luhn檢驗數(shù)字算法屬于大眾,任何人都可以使用它。

算法:將每個奇數(shù)加倍和使它變?yōu)閱蝹€的數(shù)字,如果必要的話通過減去9和在每個偶數(shù)上加上這些值。如果此卡要有效,那么,結果必須是10的倍數(shù)。

比如上圖的卡號為3759 8765 4321 001 (15位),從最高位開始所有的奇數(shù)位相加,偶數(shù)為乘以2相加(偶數(shù)乘以2后如果大于10則兩位數(shù)相加),把這些奇數(shù)和偶數(shù)都加在一起得到57.

(57+3)%10 ==0 如果此卡滿足被10整除,則有效位必定為3。

針對目前提現(xiàn)成功(clear_success)的記錄里面,統(tǒng)計卡號的位數(shù)和數(shù)量關系如下:

卡號位數(shù)數(shù)量

<13        3038+

14           538

15           476

16           10884

17           68

18           4395

19          38070

>20        504+

說明:

位數(shù)少于14的卡號基本是外資銀行,或小銀行。

位數(shù)少于14的卡號基本是外資銀行,或小銀行。

***496748***        **     HSBC                               HSBCHKHHHKH  

***430259***        **     HSBC                               HSBCHKHHHKH  

***51878018***     **    Bank of East Asia Limited      BEASHKHHXXX   

位數(shù)多于23的卡號大多是卡號包含字母或空格。

62270014 **** 0045 ***      CHINA CONSTRUCTION BANK **                

601382700 **** 9077 **      BANK OF CHINA FOSHAN BRANCH **

如果是國內的主流銀行(中、農、工、建、招、交等)基本都是基于16位或者19位的卡號。

來看看提現(xiàn)成功(clear_success)里面的卡有多少滿足Luhn規(guī)則

針對16位美元個人用戶  準確率:99.84%

正確的卡號數(shù)量:3105    不正確的卡號數(shù)量 :14

卡號45806509689007** is NOT valid

卡號48620375555016** is NOT valid

卡號54202100231152** is NOT valid

卡號58890201075786** is NOT valid

卡號62106200000456** is NOT valid

卡號62129986037235** is NOT valid

卡號62252017026526** is NOT valid

針對19位美元個人用戶   準確率:99.96%

正確的卡號數(shù)量:10574       不正確的卡號數(shù)量 :13  其中3筆發(fā)生退票

卡號60138214000567721** is NOT valid

卡號60138217000662109** is NOT valid

卡號60138220005824282** is NOT valid

卡號60138220006014219** is NOT valid

卡號60220001386050410** is NOT valid

卡號62161132000004484** is NOT valid

卡號62220212082154900** is NOT valid

卡號62220836020035821** is NOT valid

卡號63214140980000000** is NOT valid

以上都是提現(xiàn)成功的卡號,可以看到基本都嚴格滿足Luhn算法。

卡號位數(shù)數(shù)量

15      1

16      149

17      4

18      64

19      502

20      3

正確的卡號數(shù)量:622

不正確的卡號數(shù)量:29 + 1 +4+64+3

14%卡填寫違法了Luhn算法,也就是這部分卡號都是可以提前通過Luhn校驗發(fā)現(xiàn)的。

結論是我們可以在填寫收款賬戶的時候,添加一種Luth算法的JS腳本檢查用戶填寫的卡號存在問題。當然即時用戶填寫的卡號違法了該規(guī)則,我們仍然運行用戶填寫,但給出相應的警示內容(可能填錯)。

目前在收銀臺頁面(Checkout.vm)針對信用卡的交易,校驗的JS :isValidCardfunction函數(shù)就包含了Luth校驗規(guī)則,必須嚴格按照該規(guī)則的卡才能提交表單。

以上就是基于Luhn算法的銀行卡校驗規(guī)則的詳細內容,更多關于Luhn銀行卡校驗的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Java程序啟動時-D指定參數(shù)是什么

    詳解Java程序啟動時-D指定參數(shù)是什么

    java服務啟動的時候,都會指定一些參數(shù),下面這篇文章主要給大家介紹了關于Java程序啟動時-D指定參數(shù)是什么的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • 淺談maven的jar包和war包區(qū)別 以及打包方法

    淺談maven的jar包和war包區(qū)別 以及打包方法

    下面小編就為大家分享一篇淺談maven的jar包和war包區(qū)別 以及打包方法,具有很好的參考價值,希望對大家有所幫助
    2017-11-11
  • SpringBoot中的PUT和Delete請求使用

    SpringBoot中的PUT和Delete請求使用

    這篇文章主要介紹了SpringBoot中的PUT和Delete請求使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java MD5消息摘要算法原理及實現(xiàn)代碼

    Java MD5消息摘要算法原理及實現(xiàn)代碼

    這篇文章主要介紹了Java MD5消息摘要算法原理及實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 史上最佳springboot Locale 國際化方案

    史上最佳springboot Locale 國際化方案

    今天給大家分享史上最佳springboot Locale 國際化方案,本文通過實例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-08
  • javaBean的基礎知識及常見亂碼解決方法

    javaBean的基礎知識及常見亂碼解決方法

    這篇文章主要介紹了javaBean的基礎知識及常見亂碼解決方法的相關資料,需要的朋友可以參考下
    2017-03-03
  • springboot使用@data注解減少不必要代碼

    springboot使用@data注解減少不必要代碼

    這篇文章主要介紹了springboot使用@data注解減少不必要代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • mybatis二級緩存默認未開啟源碼的問題

    mybatis二級緩存默認未開啟源碼的問題

    這篇文章主要介紹了mybatis二級緩存默認未開啟源碼的問題及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Spring使用注解實現(xiàn)Bean的自動裝配

    Spring使用注解實現(xiàn)Bean的自動裝配

    大家好,本篇文章主要講的是Spring使用注解實現(xiàn)Bean的自動裝配,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • 解決新版idea新建文件沒有XML和Resource Bundle文件問題

    解決新版idea新建文件沒有XML和Resource Bundle文件問題

    這篇文章主要介紹了解決新版idea新建文件沒有XML和Resource Bundle文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

临邑县| 永善县| 邻水| 遂昌县| 贵定县| 共和县| 五原县| 枞阳县| 吐鲁番市| 东阿县| 龙海市| 房山区| 富民县| 大丰市| 简阳市| 那坡县| 斗六市| 建昌县| 渝中区| 山阳县| 青川县| 和龙市| 新乡县| 两当县| 正阳县| 松滋市| 定安县| 洪洞县| 鸡东县| 德化县| 宾川县| 黄龙县| 全南县| 惠安县| 温泉县| 铜梁县| 峨眉山市| 苍梧县| 衡东县| 宁远县| 汤阴县|