Luhn演算法計算機
使用許多卡號與識別號碼採用的 Luhn Mod 10 檢查總和,驗證數字序列。
驗證號碼
請只輸入數字,並包含最後一位檢查碼。
關於Luhn演算法
Luhn演算法是一種簡單的檢查總和公式,用來偵測數字字串中的常見錯誤。它也稱為 Mod 10 演算法,因為有效序列經轉換後的總和能被十整除。信用卡帳號是最廣為人知的用途,但此方法也用於 IMEI 裝置識別碼、國家身分識別系統、會員編號與其他結構化代碼。本計算機只檢查數學一致性,不會聯絡發卡機構,也不會確認帳戶是否存在。
驗證從最右側數字開始,該數字視為檢查碼。由右往左,每隔一位將數字加倍。若加倍後大於九,就減去九;這等同於將加倍結果的兩位數字相加。其餘位置的數字保持不變。將所有轉換後的值相加,總和除以十的餘數為零時,完整號碼就通過Luhn檢查。
例如,修改單一數字通常會改變檢查總和的餘數,使序列無效。此方法也能偵測多數相鄰數字對調,因此可涵蓋許多輸入錯誤。不過,它不是密碼學雜湊。不同的錯誤序列可能有相同餘數,任何人也都能刻意建立可通過檢查的檢查碼。因此,Luhn驗證應作為初步資料品質檢查,絕不能作為身分、授權、真實性或可用資金的證明。
計算機會在瀏覽器本機處理數字。請輸入完整號碼,包含既有的最後一位檢查碼,再選擇「驗證號碼」。結果會指出轉換後的總和是否能被十整除,並顯示餘數。餘數為一到九代表號碼不符合檢查總和規則。範例使用已公開的測試型序列,而非真實帳戶資訊。
若合成測試號碼已足夠,請避免在工具中輸入敏感的真實金融資料。雖然此實作不執行網路查詢,良好的安全習慣仍應盡量減少帳戶識別碼的暴露。開發者可用本計算機測試表單驗證,支援團隊可用遮蔽敏感內容的範例排查抄寫錯誤,學生則可跟著運算了解加權檢查總和。通過測試只表示序列符合Luhn公式,後續仍須執行適當且安全的業務驗證。
Luhn演算法範例
| 號碼 | 結果 | 說明 |
|---|---|---|
| 4532015112830366 | 有效 | 轉換後的數字總和餘數為零。 |
| 4532015112830367 | 無效 | 修改最後一位數字,使檢查總和餘數變成一。 |
| 79927398713 | 有效 | 這個經典示範序列符合 Mod 10 規則。 |
| 79927398714 | 無效 | 修改後的檢查碼不再符合檢查總和規則。 |
如何使用Luhn驗證號碼
- 輸入完整數字序列,包含最後一位檢查碼。
- 確認輸入只有數字,沒有空格或標點符號。
- 選擇「驗證號碼」,從右側開始隔位加倍。
- 閱讀有效性訊息與檢查總和餘數。
Luhn演算法常見問題
通過Luhn驗證能證明什麼?
只能證明數字序列符合 Mod 10 檢查總和,不能證明帳戶存在、仍可使用或屬於任何人。
哪一位是檢查碼?
在完整的Luhn保護序列中,最右側數字通常是檢查碼。使用此驗證器時請包含它。
Luhn演算法可以偵測哪些錯誤?
它能偵測所有單一數字替換,以及多數相鄰數字對調,但無法偵測所有可能的多位數字變更。
Luhn是安全或加密演算法嗎?
不是。它是公開的錯誤偵測公式,不提供保密或身分驗證。安全系統必須另外執行授權與發卡機構檢查。
可以驗證包含空格或連字號的號碼嗎?
本計算機刻意只接受數字,確保輸入內容沒有歧義。驗證前請移除格式字元。