信用卡號驗證器
新以 Luhn 演算法檢查卡號並辨識其發卡品牌。
This verifies the Luhn checksum, the brand prefix and the length so you can build and test payment forms. A “valid” result means the number is well-formed — not that a card exists, is active, or has funds. Everything runs in your browser; numbers are never sent anywhere. Please don’t use it for fraud.
Enter a card number to validate.
| Brand | Starts with | Length | CVV |
|---|---|---|---|
| Visa | 4 | 13, 16, 19 | 3 |
| Mastercard | 51–55, 2221–2720 | 16 | 3 |
| American Express | 34, 37 | 15 | 4 |
| Discover | 6011, 644–649, 65 | 16–19 | 3 |
| Diners Club | 300–305, 36, 38, 39 | 14–19 | 3 |
| JCB | 3528–3589 | 16–19 | 3 |
| UnionPay | 62, 81 | 16–19 | 3 |
| Maestro | 50, 56–69 | 12–19 | 3 |
Runs entirely in your browser. Nothing is uploaded.
在瀏覽器中驗證任何卡號
這款信用卡驗證器透過Luhn演算法、卡片品牌和預期長度來檢查卡號是否格式正確——在您輸入時即時驗證。貼上或輸入一個卡號,您將立即看到識別出的品牌及其標誌、Luhn校驗和長度檢查結果,以及選擇性的CVV和有效期格式檢查。
它專為開發人員設計,協助他們建立結帳表單;同時也適合任何希望在提交付款前發現輸入錯誤的使用者。所有功能都在本機瀏覽器中執行,無需伺服器,因此它也是一個私密的卡號驗證器和Luhn校驗計算機,即便在有嚴格對外流量限制的企業網路中也能使用。
Luhn演算法的運作原理
Luhn演算法,也稱為mod-10校驗,是幾乎所有卡片網路自1954年Hans Peter Luhn取得專利以來一直使用的校驗和公式。從右側開始,每隔一位數字乘以2;若結果超過9則減去9,然後將所有數字相加。當總和能被10整除時,該號碼有效。例如,4242 4242 4242 4242的總和為80——能被10整除——因此它是Luhn有效的。
本頁的逐步Luhn分解面板會將您輸入的任何數字的計算過程視覺化:它突顯翻倍的數字,顯示每個數字對累計總和的貢獻,並列印最終總和及其餘數。這是理解Luhn校驗實際運作方式最快的途徑,當您需要在程式碼中自行實作時非常有用。
從IIN/BIN識別卡片品牌
卡片的前六到八位數字是其發卡機構識別號(IIN)——歷史上稱為銀行識別號(BIN)——用於識別網路。這款卡片品牌偵測器能識別Visa(以4開頭)、Mastercard(51–55和2221–2720)、美國運通(34/37)、Discover(6011、644–649、65)、大來卡(300–305、36、38、39)、JCB(3528–3589)、銀聯(62、81)和Maestro,並在品牌規則表中顯示每種品牌的接受長度和CVV位數。
品牌偵測在您輸入時即時觸發,因此在輸入前四位數字時,您就能知道該號碼屬於Visa、Mastercard還是Amex。這與電商網站支付表單在輸入框中顯示正確卡片標誌所進行的檢查完全相同。
與cardguru.io和creditcardvalidator.org的比較
搜尋量最高的免費卡片驗證器是cardguru.io和creditcardvalidator.org。兩者都檢查Luhn演算法並識別品牌。Cardguru.io增加了BIN查詢(發卡行、國家),但透過伺服器端API呼叫實現,這意味著您的卡號會離開瀏覽器。Creditcardvalidator.org完全在客戶端執行,但在驗證器旁邊顯示廣告,也不提供測試卡產生或批次檢查功能。
namso-gen.com等類似網站專注於測試卡產生,有時批量產生,但其產生的號碼被用於詐欺測試。本驗證器清楚地分離了各項功能:驗證號碼、產生測試卡或批次驗證——全部離線執行,與任何濫用行為無關。
測試卡號、產生器和批次模式
內建的測試信用卡號庫依品牌列出了Luhn有效的沙盒號碼(Stripe、Adyen和PayPal風格),每個號碼都清楚標示為僅供測試,附有複製和「使用」按鈕。需要新號碼?產生器可為任何品牌建立隨機的Luhn有效號碼,讓您無需查閱Stripe文件即可在幾秒鐘內填寫支付表單。
批次模式允許您貼上一欄號碼——來自試算表匯出或測試fixture檔案——並取得一張包含品牌、長度、Luhn結果以及每列有效/無效判決的表格。這在QA期間非常有用,當您有來自第三方資料來源的號碼清單並需要快速了解哪些格式正確時。
在程式碼中驗證卡號——以及伺服器端不能忽略的事項
要在程式碼中驗證信用卡號,請直接實作Luhn:反轉數字字串,將每隔一位字元翻倍(超過9時減去9),求所有值的總和,當總和mod 10等於0時回傳有效——在JavaScript或Python中大約六行程式碼。新增品牌前綴正規表示式和針對識別品牌的長度檢查,以實現完整的客戶端格式驗證。
在客戶端使用此檢查可為使用者提供即時回饋——它在網路請求觸發之前捕獲最常見的輸入錯誤。但永遠不要僅依賴它:始終透過經認證的支付處理商(Stripe、Adyen、Braintree、Square等)在伺服器端執行真實授權。通過Luhn校驗只是格式檢查,不是財務保證。這裡無需註冊、無需費用、無伺服器——每次檢查都在您的瀏覽器中進行,您輸入的號碼永遠不會離開您的裝置。
Frequently asked questions
什麼是信用卡驗證器?
信用卡驗證器透過三項測試檢查卡號是否格式正確:Luhn校驗和、卡片品牌(透過開頭數字識別,稱為IIN或BIN)以及該品牌的預期長度。它在瀏覽器中即時給出結果。開發人員用它測試支付表單,購物者用它在提交前發現錯誤。它不會聯繫銀行,因此無法告知您真實卡片是否曾被發行或是否有餘額。
Luhn演算法是什麼,它如何運作?
Luhn演算法,也稱mod-10校驗,是一種校驗和公式,能捕獲大多數輸入錯誤的卡號。從最右邊的數字開始向左移動,每隔一位數字翻倍;若翻倍結果為兩位數(10或更多),則減去9。然後將所有數字相加。若總和能被10整除,該號碼通過校驗。本頁的逐步分解面板會為您輸入的任何號碼展示相同的計算過程。
有效號碼意味著該卡是真實的或有效的嗎?
不。「有效」結果僅意味著該號碼格式正確:它通過了Luhn校驗和,並符合已知品牌的前綴和長度模式。這完全不能說明該卡是否曾被銀行發行、是否屬於真實的人、是否當前有效或是否有可用信用額度。確認這些事實需要對發卡行系統進行即時授權,這只在透過支付處理商進行真實交易時才會發生。
在這裡輸入卡號安全嗎?
是的。所有檢查都完全在您的瀏覽器中透過JavaScript執行——您輸入的任何內容都不會傳送到任何伺服器、不會被記錄,也不會被您裝置之外的任何人看到。驗證器本身沒有後端、沒有API呼叫、沒有第三方分析。作為最佳實踐,當您只需要測試支付表單時,優先使用內建的測試號碼,避免分享無特定原因的真實卡片資料。
如何從號碼識別卡片品牌?
卡片的前六到八位數字是其發卡機構識別號(IIN),編碼了網路品牌。Visa號碼以4開頭;Mastercard以51–55或2221–2720開頭;美國運通以34或37開頭;Discover以6011、644–649或65開頭;大來卡以300–305、36、38或39開頭。本驗證器從您輸入的前幾位數字偵測品牌,並立即顯示標誌、接受長度和CVV位數。
每種卡片類型有多少位數字?
Visa和Mastercard號碼為16位。美國運通為15位。大來卡為14位(儘管部分聯名卡為16位)。Discover、JCB和銀聯根據產品類型為16至19位。Maestro可為12至19位。長度是驗證的一部分:以4開頭的15位號碼即使通過Luhn校驗也不是有效的Visa,因為Visa要求16位。
如何在程式碼中驗證信用卡號?
直接實作Luhn:反轉數字陣列,將每隔一個元素翻倍(若結果超過9則減去9),求所有元素的總和,當總和mod 10等於0時回傳true。在JavaScript或Python中約為六行程式碼。然後使用正規表示式新增品牌前綴檢查,以及針對識別品牌的長度檢查。在客戶端使用此檢查取得即時回饋,但始終在伺服器端透過您的支付處理商執行真實授權。