小薑雜談:信用卡號碼的意義

信用卡這個東西,已經是許多(大部份?台灣應該沒歐美泛濫吧...)人生活中不可或缺的一部份。但是一般人對信用卡號碼的理解,大概僅限於最後一碼是檢查碼,如果最後一碼數字錯的話,就會被發現是假的卡號。那前面的數字呢?是隨機的嗎?還是有意義的呢?Mint.com 做了一張很不錯的 Infographic,介紹信用卡號碼每個部份代表的意義。當然不可能是隨機的囉 XD。第一碼

第一碼是發卡單位,例如 VISA 和 Mastercard 都算在銀行/金融機構,美國運通算在「旅遊與娛樂」。其他數字感覺都不是很常見 @@。

1 - 航空公司
2 - 航空公司
3 - 旅遊與娛樂
4 - 銀行/金融機構
5 - 銀行/金融機構
6 - 銀行/營銷
7 - 石化業
8 - 電信
9 - 國家單位

前六碼

前六碼(包括第一碼)是發卡機構。所有的 VISA 卡都應該是 "4" 開頭;所有的 Mastercard 都是 "51~55" 開頭;所有的美國運通卡都是 "34" 或 "37" 開頭。這六個數字稱為「BIN(Bank Identification Number,銀行辨識碼)」或「IIN(Issuer Identification Number,發行者辨識碼)」,每個發卡銀行都是不一樣的。有興趣的讀者可以到這裡輸入你的信用卡前六碼,就可以看到了。小薑的卡片前六碼是 552046,系統也準確地辨識它是台北富邦的卡。

第七碼到倒數第二碼

接下來的幾個位數,就是你的帳號。很神奇的,這個部份的位數並不固定 -- 目前大部份的卡片都用九碼(即十億種組合),但規範上是允許到十二碼(一兆種組合)。如果卡片是九碼的話,加上前面六碼以及最後一位檢查碼,一共是十六碼。

最後一碼

這是檢查碼,使用的是 Luhn 演算法。這個演算法有點小複雜,看著上圖應該會比較容易理解。首先,將所有的單位數數字乘以二,如果碰到有二位數的數字,則看做是兩個分開的數字相加(例:7 乘以 2 等於 14,故看作 1+4 = 5),把這些數字全部加起來,再加上所有的雙數位數字(之前沒乘以二的那些)。最後得出來的數字,應該要是十的倍數,這才是一張合法的卡片。

當然,知道法則之後,其實前十五碼愛用什麼數字都可以,只要在最後一碼上,讓最後運算的結果補成十的倍數就可以了。不過這個方法騙騙向你要信用卡號碼來「驗證」的網站可以,要付款的話當然是不行的。真正的信用卡檢查機制還多著呢!

背後的安全檢查碼

其實現代信用卡有多種交易方法,包話 IC 晶片、磁條、網路交易等,每一個都有自已獨立的安全檢查碼。這三者當中自然以 IC 晶片最為安全,因為它的安全碼是動態產生的,不像磁條裡的安全碼是固定的,如果萬一被側錄的話,信用卡的安全性會有危險。不過大家最熟悉的安全檢查碼,應該莫過於網路交易時會問到,在信用卡後面的三位數密碼。這個密碼來自卡號、有限期限,或許再加上一些個人資料,但詳細的演算法是個祕密,而且每間銀行都不一樣。只有當網路購物時,商家傳送給銀行,才會由銀行來驗證正確性。

--
大概就這樣。小小的信用卡,已經是現代社會不可或缺的重要交易媒介,希望各位對自已手上的卡片,有了更深一層的認識囉!