使用Java中的Luhn演算法實現信用卡驗證 - Java2Blog
Luhn 演算法(也稱為 模數10 或 mod 10 演算法)是一種簡單的校驗和過程,用於驗證各種標識號,例如信用卡號,加拿大社會保險號。此演算法旨在保護再次輸入錯誤或意外的錯誤,而不是惡意攻擊。大多數信用卡公司都採用此演算法,因為該演算法可在公共領域使用,並且任何人都可以使用。
以下是Luhn演算法中涉及的步驟。
步驟1 :從最右邊的數字開始,我們應該每隔一個數字加倍。
第2 步:當我們將數字加倍並獲得兩位數的乘積時,則應新增乘積的數字。
步驟3 :計算所有數字的總和。
步驟4 :如果總和可以除以10,即總和模10為0,則數字有效,否則無效。
由於 90 mod 10 為0 ,因此這是有效的信用卡號。
public class LuhnAlgorithmMain { public static void main(String[] args) { String cardNumber="1358954993914435"; boolean validCreditCardNumber = isValidCreditCardNumber(cardNumber); if(validCreditCardNumber) { System.out.println(cardNumber+" is valid as per luhn algorithm"); } else { System.out.println(cardNumber+" is not valid as per luhn algorithm"); } } public static boolean isValidCreditCardNumber(String cardNumber) { // int array for processing the cardNumber int[] cardIntArray=new int[cardNumber.length()]; for(int i=0;i<cardNumber.length();i++) { char c= cardNumber.charAt(i); cardIntArray[i]= Integer.parseInt(""+c); } for(int i=cardIntArray.length-2;i>=0;i=i-2) { int num = cardIntArray[i]; num = num * 2; // step 1 if(num>9) { num = num%10 + num/10; // step 2 } cardIntArray[i]=num; } int sum = sumDigits(cardIntArray); // step 3 System.out.println(sum); if(sum%10==0) // step 4 { return true; } return false; } public static int sumDigits(int[] arr) { return Arrays.stream(arr).sum(); } } |
相關文章
- java圖形驗證碼實現Java
- Spring Security 6中使用PKCE實現身份驗證Spring
- Java實現郵箱驗證碼功能Java
- 使用 Spring Validator 介面實現驗證Spring
- Rust中實現JWT身份驗證RustJWT
- Java驗證碼—ValidateCode的使用Java
- 【總結】Java實現簡訊驗證碼Java
- Java隨機生成圖片與HTML表單中的驗證碼實現Java隨機HTML
- vue中axios如何實現token驗證VueiOS
- golang 中使用 JWT 實現登入驗證GolangJWT
- easy-captcha實現驗證碼驗證APT
- DDD中實現業務規則的驗證 - Marcin
- Java中Blowfish加密演算法實現Java加密演算法
- 使用.Net Core實現的一個圖形驗證碼
- java實現手機簡訊驗證全過程Java
- Etsy使用交錯新演算法實現更快的ML實驗演算法
- 使用 Chapel 實現滑動驗證碼識別
- Django實現驗證碼Django
- 2.13.3 使用 Oracle Wallet 實現在DBCA中使用身份驗證Oracle
- 判斷使用者輸入的銀行卡號是否正確的方法(基於Luhn演算法的格式校驗)演算法
- Java使用正規表示式對註冊頁面進行驗證功能實現Java
- 使用JWT做RESTful API的身份驗證-Go語言實現JWTRESTAPIGo
- java視窗登入介面實現隨機驗證碼Java隨機
- web動態驗證碼的實現Web
- node學習---jwt實現驗證使用者身份JWT
- Spring Boot 使用 JSR303 實現引數驗證Spring BootJS
- 使用tinyvalidator實現伺服器端驗證 -Yuri Mednikov伺服器
- layui使用html+servlet+ajax實現登入驗證UIHTMLServlet
- 簡訊驗證實現方式
- 實驗七: 查詢演算法的實現演算法
- Spring Boot中實現輸入引數驗證教程Spring Boot
- 在 SpringBoot 專案中簡單實現 JWT 驗證Spring BootJWT
- lumen驗證類 實現控制器場景驗證
- node實現基於token的身份驗證
- 實現elementUI表單的全域性驗證UI
- Kubernetes 兩步驗證 - 使用 Serverless 實現動態准入控制Server
- 使用 Seed7 實現滑動驗證碼識別
- 使用 ActionScript 實現簡單滑動驗證碼識別