国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
信用卡卡號背后的學問

大多數人錢包里都會有張「這個月爽了不管下個月哭」的信用卡,每張卡上都會有一串16位的卡號,這串數字是獨一無二的,銀行只認數字不認臉,這串數字當然不會是隨機搖號給你的,它們有自己的規(guī)律。

這里是一張火星銀行和煎蛋聯合發(fā)行的「刷爆超載雞」系列信用卡卡面:

開頭一些數字表示的是這張卡的類型,代表你是「威士」,還是「萬事達」,或者是「美國運通」……

表格左邊是常見的信用卡品牌,右邊是相應的數字前綴。(你可以拿出磁條刷毛的卡片對照一下)

檢查位

信用卡號,經常需要被輸入、掃描、傳輸和調取。這些過程都有出錯的可能,特別是一得瑟就手潮的地球人……錢數上的事情可不敢開玩笑,所以最后一位作為校對(檢查數字)。

普通的16位數字信用卡號,前15位是發(fā)卡行定的,但是最后這一位,是通過前15位,用某種算法算出來的。

這最后一位沒法挑,因為它是算法確定的。這個算法是由 IBM 的工程師 Hans Peter Luhn 在1954年發(fā)明的。當時被申請為專利,現在已經公開,進入公共知識領域,成為國際標準組織的一項標準:ISO/IEC 7812-1。

很明顯,就靠一個數字,是不能保證檢測到所有錯誤的(命中的可能性是1/10),但 Luhn 算法非常智能,它能檢測到任何一位的錯誤(輸錯一個數字),比如把上面這個卡號的9和6互換換成6。它也能檢測到幾乎所有成對交換的數字。這些都是人們輸入卡號時候,經常犯的錯誤。所以校對碼還是起到了不小的作用。

Luhn 算法

Luhn 算法是基于「模運算」和「數根法則」的。

Luhn 是 mod 10 (模10算法):

計算得到「檢查位」數字的過程是這樣的:

從右側開始,偶數位數字都乘以2,如果結果是一個2位數字,則把這個兩位數字相加,得到一個一位數字(這就叫數根,不可能出現19的情況)。然后加在一起得到一個結果

然后我們把所有奇數位上的數字相加,得到一個結果。

把這兩個結果再相加(煎蛋卡的結果是67)。然后需要加上一個數字,使它能夠被10整除,這里,我們需要加上·3·。

545762389823411 3
噠噠~ 這個 3 就是我們煎蛋卡的校對碼啦 ♂( ̄▽ ̄)/

校驗碼的其他應用

檢查位的數字,是常用的校驗方法,檢查輸入的數字是否符合格式要求,避免簡單的輸入錯誤,或者對付一些想碰碰運氣能不能猜對卡號的呆子……。

以下是一些同樣編入校對碼的場合(不是所有都是基于 Luhns 算法的):

車輛識別號、條形碼、書刊雜志的ISBN號、澳大利亞的稅號、匈牙利的社保號、美國銀行的中轉碼……

對于好學的蛋友們,除了 Luhn 算法,世界上還有其他的校驗碼算法。比如 Verhoeff(1969) Damm algorithm(2004)。他們除了和 Luhn 算法一樣,可以檢測單位錯誤以外,還可以檢測「任意位數成對交換」,還有一些算法可以擴展到除數字意外的文本內容的校驗。

奇偶校驗位

「數字校驗」的概念由來已久,早年計算機剛發(fā)明不久,內存的可靠性還不如今天,計算機工程師需要一種方法來檢測硬件錯誤。

解決之道來自于「奇偶」的概念。計算機中,一字節(jié)由8個比特組成,任何情況下,每一位上為1的總數不是偶數,就是奇數。如果是偶數,則「奇偶校驗位」為0,反之則為1。

每次在硬件層面讀取數值的時候,奇偶校驗碼就會被生成一次,如果校對發(fā)現出錯,程序就會拋出一個錯誤。你可以很清楚的看到變動任何一位都會翻轉校驗碼的結果。但是奇偶校驗碼不會告訴你,是具體哪個位置上出錯了(也有可能是奇偶校驗位本身錯了?。?。

現在 RAM 芯片的可靠性已經大大增強,大部分的 PC 機已經不支持帶奇偶校驗的內存條。但是高端服務器和一些關鍵崗位上的電腦(銀行,發(fā)電廠之類)還是配備了奇偶校驗的保護措施。剛才說了,奇偶校驗無法告訴你是哪位錯了,所以它不具備糾錯能力,于是工程師在這些關鍵場合,開發(fā)了一種叫做 ECC(Error-Correcting-Code-memory)的技術。

ECC 內存的工作原理更加復雜。ECC 給每一塊存儲區(qū)的數據編碼,增加的位用來重建數據。它能夠檢測到任何「一位」的錯誤,或者兩個同步位的錯誤,更重要的是,它能糾正所有「一位」的錯誤,把正確的數值寫回去。但是 ECC 在每一位,都需要更多的奇偶校驗位(意味著更貴)。

ECC 的數學很復雜,本小編就不在這里不懂裝懂了,但 ECC 更依賴冗余和排序算法。如果有好學的蛋友,請移步學習 Reed-Solomon Error Correction。 歡迎學成之后,歡迎投稿給大家講講唄。

現在給大家看一下 ECC 校驗的基本原理,假設下圖中有一個未知位,但是其他信息都是正確可靠的,而且我們知道我們在用「偶數校對」,這樣我們就能恢復迷失的這位(這里應該是0)。

磁盤冗余整列(RAID)

最后一個「容錯機制」例子就是RAID存儲技術。

在硬盤拷數據的時候右腿亂抖腿,其他人都白眼看著你,因為計算機最脆弱的部分就是硬盤數據傳輸。如果你繼續(xù)眼看天花板,換作左腿亂抖,只能說你這人……圖樣圖森破,人生里還沒有經歷過硬盤數據崩壞的苦痛。

存儲在硬盤上的數據其實是非常脆弱的,所以需要冗余技術。其中最簡單的一個辦法就是做一份鏡像,這的確有效,但缺點是你需要一倍的硬盤。

還有一種更加經濟的方法,就是用奇偶校驗的辦法進行數據編碼?;纠碚撌沁@樣的,假設說一個硬盤有出錯的可能,但是兩個硬盤同時出錯的概率很?。ㄟ@還是需要一點人品的……),如果其中一個出錯了,那么你可以利用冗余機制,繼續(xù)工作,同時你可以把壞掉的硬盤換掉,新硬盤上崗以后,它就可以重建數據并恢復校對碼,繼續(xù)工作并提供保護,而且整個過程里,你不需要宕機。

RAID 的全稱是「Redundant Array of Inexpensive Disks」, 意思是硬盤比起現在來,那時候是「又貴又不靠譜的東西」,但是現在是便宜了,還是相對的不靠譜。設計的初衷,就是用相對便宜的硬盤組成陣列,拼的就是「你們不可能商量好一起掛掉的對吧?!」。雖然看上去要用很多硬盤,但總體成本還是優(yōu)于單個高性能的,但也就靠譜一點點的硬盤設備。

看上去就和安全網絡一樣。

今天,隨著可靠性和技術的進步,我們還是需要這種安保措施,但這只是最后一道防線,不是標準的安全措施。為了提醒大家注意這點,行業(yè)上已經把 RAID 的定義改為(Redundant Array of Independent Disk): 大量獨立的硬盤的冗余陣列,其實吧,說成「窮人的磁盤陣列」就可以了。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
小小信用卡號碼中的大乾坤
生信分析平臺搭建(十五):RAID
raid5什么意思?如何做raid5?raid5 幾塊硬盤?
「干貨」圖文并茂磁盤陣列RAID詳解
Luhn 算法
服務器硬件基礎知識
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服