謝詩涵 王夢然
20世紀60年代至70年代,條形碼的聯合發明人諾曼·伍德蘭德發明了一維碼(條形碼),變革了全球商業活動,為消費者在超市購物節省了大量時間。然而在之后幾十年的發展過程中,由寬度不等的多個黑條和空白組成的一維碼出現數據容量小、損壞后無法讀取等多種問題。
為了彌補這些缺陷,1994年,日本電裝公司正式宣布公開首個二維碼(Quick Response Code,QR Code)。“在二維碼圖案中,白色的方塊代表0,黑色的方塊代表1。二維碼技術將一個字符串轉換成二進制編碼,然后加上定位標志信息、定時標志信息、校正標志信息以及內容信息等主要信息,最后經過混亂技術得到最終的編碼。”南京郵電大學計算機學院教授徐小龍說。
以矩陣形式承載信息的二維碼為何能超越它的“前輩”一維碼?首先,二維碼的信息容量更大。“一維碼只能由數字和字母組成,數據容量小,而二維碼能存儲漢字、數字、圖片、指紋和聲音等多模態信息;一維碼只能在一個方向(一般是水平方向)上表達信息,而二維碼在水平和垂直方向都可以存儲信息。”此外,二維碼譯碼更準確。二維碼的譯碼誤碼率為千萬分之一,這比普通條形碼2%的譯碼誤碼率要低很多。為了防止信息被盜取,二維碼中還可以引入加密措施。
根據“QR碼國際通用標準”,目前普通二維碼有40個版本,版本越大,尺寸越大。最小的版本1是一個21×21模塊的正方形,版本號每加1,正方形的邊長就增加4個模塊,最大的版本40是一個177×177模塊的正方形。那么,不同密度的二維碼所包含的信息有區別嗎?“不同密度的二維碼所包含的信息,其編碼的字符、容錯率均不同。密度越低,編碼的字符個數越少、容錯率越低。”徐小龍解釋。二維碼容錯率即二維碼圖標被遮擋多少后,仍可以被掃描出來的能力。目前,典型的二維碼的容錯率分為7%、15%、25%和30%這4個等級,容錯率越高,越容易被快速掃描。
一般來說,二維碼是一個字符串形式的網頁地址(URL),而當我們拿起手機掃描二維碼,就是識別出這個網頁URL并點擊訪問的過程。當手機等終端的軟件掃描二維碼,會給云端服務器傳送數據,即發送一條信息給服務器;服務器在收到數據后,就會反饋對應的信息到手機等終端上,說明該二維碼鏈接被掃描了,用戶可以進行對應的操作。這里需要特別當心,如果是惡意二維碼,對應著惡意的URL鏈接,可能會下載病毒等惡意代碼,從而導致手機被侵害。
每一個二維碼上都會有3個小方塊,這對于掃碼來說有何作用?實際上,這3個方塊是二維碼的位置信息,用于二維碼的定位,可以幫助機器正確地解讀和識別。換句話說,有了這3個小方塊,就可以完整定位一個正方形,從而確定數據范圍。不管是正著掃、傾斜掃,甚至是鏡像翻轉,二維碼都能被正常識別。
有意思的是,人們經常掃描二維碼,那么有一天二維碼是否會被用完?答案是:理論上二維碼的數量是有限的,但現實中根本用不完。以25×25模塊的二維碼為例,除去定位用的方塊和冗余糾錯的方塊等,還剩下478個方塊。按照二進制,每個方塊只有黑或白兩種選擇,所以478個小方塊理論上一共可以組合出2478個二維碼。以目前40個尺寸的二維碼能組合的總數來看,根據專家推算,全球70多億人每秒換一個二維碼,用從宇宙大爆炸到今天的138億年的時間,也只能消耗一小部分。東南大學網絡空間安全學院副教授宋宇波說:“二維碼包含200多個字節的信息量,短時期內能夠滿足市場需求。”
外出購物沒帶錢包,掃碼支付即可以輕松脫“困”;給孩子買的牛奶不知真偽,掃碼溯源,“碼”上安全;疫情期間,手機屏幕上一個綠色的“健康碼”成為全國人民正常出入公共場所的“身份證”。中國已成為二維碼應用最廣泛的國家,中國二維碼應用占全球90%以上。
通過二維碼支付構成了以小程序、公眾號、支付軟件等工具為核心的“碼上經濟”開放生態,實現價值鏈向價值網的升級,激發傳統商業價值裂變。以微信支付為例,2019年微信生態帶來的“碼上經濟”規模達到8.58萬億元,微信帶動“碼上經濟”就業崗位2601萬個。微信開放生態推動二維碼在社會經濟各領域的應用,實現了基于二維碼的社交網絡到商業網絡的價值裂變。
不過,“碼上經濟”繁榮的外表之下仍存在一些安全隱患。“比如有黑客會將一個更小的黑白方塊嵌入二維碼,使用者很難識別這種陷阱,一旦按流程輸入信息,就可能受到網絡安全攻擊。”宋宇波說。提高信息含量、提升安全性能是當前二維碼發展的兩個重要方向。技術界將通過算法優化、軟件升級等辦法為二維碼“加密”,提升安全性能。