近段時間,小編遇到了一件十分神奇的事情。小編在擼完串準備結賬的時候,一塊肉正好掉在了支付的二維碼上,遮住了部分的二維碼。然而,小編竟然支付成功了,這讓小編倍感驚訝。
二維碼模糊了一部分還能掃的出來嘛?
為了驗證這個猜想,挨踢妹測試多個二維碼,又專門查詢了各種技術資料,終于得到以下結論!
① 二維碼在發(fā)明時有容錯機制的設計,所以即使缺失一部分也可以識別掃描
② 手機掃碼是依靠二維碼上的【回】字圖來定位,通過對黑白色塊的翻譯識別信息
現(xiàn)在挨踢妹就簡單給大家科普一下二維碼,揭開這個小方塊到底有什么神奇之處。
簡單來說,二維碼是一種開放的信息存儲器,二維碼是相對于一維碼來說的,比如商品上的條形碼就屬于一維碼,掃描條形碼,也可以讀取到它存儲的信息。但二維碼相比一維碼來說,存儲的數(shù)據(jù)量更大,可以包含數(shù)據(jù)、字符和中文文本等混合內(nèi)容。
雖然二維碼是近幾年才火遍大街小巷,但其實二維碼的技術研究早在20世紀80年代末就已經(jīng)開始了,并且推出了多種碼制,常見的有堆疊式二維碼的PDF417、Code 49、Code 16K,矩陣式二維碼的QR Code、Code one等,這些二維碼的信息密度都比傳統(tǒng)的一維碼有了較大提高,如PDF417的信息密度是一維碼CodeC39的20多倍。
現(xiàn)在最流行,也是大家最常使用的是矩陣式二維碼 QR Code,利用的也是二進制原理,用黑色方塊表示二進制"1",白色方塊表示二進制"0",黑白相間的圖案其實就是一串編碼,掃碼的過程就是翻譯這些編碼的過程。
二維碼每個部分都有各自作用。
其中定位圖案就是“回”字形圖案,用三個定位圖案即可標識并確定一個二維碼矩形的位置和方向,QR碼從360°任一方向均可快速讀取,其奧秘就在于這 3 處定位圖案,可以幫助QR碼不受背景樣式的影響,實現(xiàn)快速穩(wěn)定的讀取。
其他還包括定位圖形、校正圖形、格式信息、版本信息、糾錯碼,和主要區(qū)域的圖形(即二維碼承擔存儲功能的核心數(shù)據(jù))。
出于掃碼成功率考慮,QR Code 還具有糾錯功能的,即使編碼變臟或破損,也可自動恢復數(shù)據(jù)。糾錯編碼會把數(shù)據(jù)碼字序列分塊,根據(jù)糾錯等級和分塊的碼字,產(chǎn)生糾錯碼字,并把糾錯碼字加入到數(shù)據(jù)碼字序列后面,成為一個新的序列。我們可以簡單可以理解為在不同位置重復放置信息數(shù)據(jù)。
糾錯功能分為4個級別,即M級、L級、Q級和H級,不同級別的糾錯能力也不同
L級7%字碼修正
M級15%字碼修正
Q級25%字碼修正
H級30%字碼修正
調(diào)高級別,糾錯能力也相應提高,但由于數(shù)據(jù)量會隨之增加,二維碼圖案尺寸也會變大。
所以,如果二維碼只是缺了個角,掉了點皮,只要能掃描到大部分,依然可以識別,但如果用于定位的“回”字圖形被損壞,就可能讀取信息失敗。
不過,也有不法分子,會利用二維碼可存儲信息的技術,植入手機病毒和釣魚網(wǎng)站,甚至可以占用手機短信接口,移花接木,盜走用戶錢財,所以大家需要提高防范意識,不要隨便掃描來源不明的二維碼,以免造成個人財產(chǎn)損失。