為了讓我們更形象地了解,黃海平對信息“bcde”進行了QR編碼(同時為了防泄露置入了密鑰“a”,這是為了保護信息),這樣經過編碼,就出現了一個全部由0和1組成矩形的排列。由這個信息又生成了二維碼。
至于數據信息到底在黑白相間的矩形中的什么位置,非專業(yè)人士是無法知曉的,“這都是后臺的工作了,QR碼有自動的規(guī)則,將信息安排在二維碼相應的位置。”黃海平說。
和數據信息混在一起編入二維碼的還有糾錯碼信息。這是因為當我們對二維碼進行掃描時,不能保證掃的每一位信息都正確,這就需要依賴糾錯碼信息了。
此外,二維碼中還藏著非常重要的校正圖形。當二維碼遭到污染或者破壞時,校正圖形保證了沒有被破壞的信息仍然可以被識別。也就是說,我們掃描讀出的信息在二維碼中備份了很多份。“即使二維碼的損毀面積高達50%,信息仍然可以讀取。”這也就是我們對著一個二維碼掃描時,不需要只掃描整個圖形,而只對著圖形的某一個部分,就可能成功獲取信息的原因。不信你可以試試!
說到這里,掃描二維碼為什么能讀取信息就好理解了。“在我們用光電掃描器或者手機智能終端的掃描軟件進行掃描時,其實是一個解碼的過程,解碼恰恰是編碼的逆過程。具體說來,是位置探測圖形定位二維碼的區(qū)域,根據二維碼的編碼格式信息和糾錯碼,對數據進行解讀。如果編碼時經過加密處理,解碼時則需要加密時的密鑰信息。”
也許你有個疑問,此前條形碼在生活里也已經有諸多應用,比如超市貨架上的東西都有條形碼,二維碼相比條形碼有什么優(yōu)點呢?黃海平說,條形碼是一維的,而二維碼是采用縱橫向編碼的,儲存的信息量就大很多。有數據顯示,最多可記錄1850個大寫字母,2710個數字或500多個漢字。另外,二維碼的空間利用率高;二維碼除了常見的OR碼,還可以用其他碼制進行編碼。還有,前面說到的糾錯能力和校正能力,以及加密功能,都是二維碼的優(yōu)勢。
為什么掃二維碼的一部分也能看到信息?那是因為校正圖形藏在二維碼中,具有多個數據信息備份,所以,我們掃描一部分二維碼也能顯示出全部的信息來。