技術(shù)
導(dǎo)讀:在幾乎任何需要付款的場(chǎng)合,人們只需要拿出手機(jī)掃一掃二維碼,就可以輕松完成整個(gè)支付過程,簡(jiǎn)單、快捷而且足夠安全。
在萬(wàn)物互聯(lián)的時(shí)代,信息技術(shù)的發(fā)展日新月異,人們對(duì)于新興事物的接受速度越來(lái)越快,這一點(diǎn)在中國(guó)尤為顯著。曾幾何時(shí),人們還將現(xiàn)金視為隨身攜帶的必備物品。而僅僅不到十年時(shí)間,人們外出購(gòu)物、旅行,已經(jīng)不再需要攜帶現(xiàn)金,在幾乎任何需要付款的場(chǎng)合,人們只需要拿出手機(jī)掃一掃二維碼,就可以輕松完成整個(gè)支付過程,簡(jiǎn)單、快捷而且足夠安全。
事實(shí)上,二維碼的應(yīng)用絕不僅僅局限于支付領(lǐng)域。電子票務(wù)、會(huì)議簽到、食品溯源、個(gè)人健康碼、網(wǎng)絡(luò)賬號(hào)登錄、積分兌換、防偽識(shí)別、電子名片等等,都會(huì)用到二維碼??梢哉f(shuō),我們的生活已經(jīng)越來(lái)越離不開二維碼的使用。目前,全球每天消耗的二維碼數(shù)量高達(dá)上百億個(gè),預(yù)計(jì)未來(lái)還將大幅增加。那么,二維碼的總?cè)萘康降子卸啻?,萬(wàn)一哪天用完了怎么辦呢?
要回答這個(gè)問題,我們必須先從一維碼,也就是條形碼說(shuō)起。二戰(zhàn)剛剛結(jié)束的第三個(gè)年頭,美國(guó)費(fèi)城的一名大學(xué)生無(wú)意間聽到當(dāng)?shù)匾患疫B鎖超市的總裁懇請(qǐng)?jiān)洪L(zhǎng)研究一種可以在收銀臺(tái)處自動(dòng)記錄商品銷售情況的方法,院長(zhǎng)認(rèn)為這是異想天開,但是這名叫伯納德·塞爾沃的大學(xué)生卻當(dāng)真了,開始和他的同學(xué)約瑟夫·伍德蘭德一起用心研究這種方法。
經(jīng)過一段時(shí)間的嘗試,塞爾沃決定使用莫爾斯電碼中的點(diǎn)線,并將其設(shè)置成粗細(xì)不一的條紋,以此來(lái)實(shí)現(xiàn)信息標(biāo)識(shí)功能。
此后,經(jīng)過二十多年的努力,塞爾沃和伍德蘭德發(fā)明了世界上第一套條形碼及其掃描器系統(tǒng)。這項(xiàng)發(fā)明首先被用于商品流通領(lǐng)域,之后又?jǐn)U展到圖書管理、郵政管理、銀行系統(tǒng)、流水線生產(chǎn)等許多領(lǐng)域。條形碼的使用,僅在商品流通領(lǐng)域,每年就能夠節(jié)省十幾億美元。不過,條形碼的發(fā)明者——塞爾沃和伍德蘭德卻沒有因此而實(shí)現(xiàn)暴富。
條形碼的原理說(shuō)起來(lái)也很簡(jiǎn)單。它是由寬度不等的多個(gè)黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識(shí)符。利用黑白條紋之間存在非常大的反射率,當(dāng)掃描器的光線掃過時(shí),可以讀出條形碼中的信息。不過,一維的條形碼只能包含一些簡(jiǎn)單的編碼信息。
1994年,日本科學(xué)家原昌宏在一維碼的基礎(chǔ)上增加了一個(gè)維度,發(fā)明了可以存儲(chǔ)大量信息的二維碼。二維條碼是用某種特定的幾何圖形按照一定的規(guī)律在平面(二維方向上)分布的、黑白相間的、記錄數(shù)據(jù)符號(hào)信息的圖形。
在代碼編制上,二維碼巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來(lái)表示文字?jǐn)?shù)值信息。在二維碼中,白點(diǎn)代表0,黑點(diǎn)代表1。信息被編碼為二進(jìn)制的形式,然后再根據(jù)某種規(guī)律分布在兩個(gè)維度上。
制作二維碼輸入的信息可以分為三類,一類是文本信息,比如名片信息;二類是字符信息,比如網(wǎng)址、電話號(hào)碼;三類是圖片信息,甚至還可以包括簡(jiǎn)短的視頻。二維碼掃描器會(huì)按照相應(yīng)的規(guī)則來(lái)讀取這三類信息,這樣我們就可以知道二維碼上面表達(dá)的信息是什么。
二維碼的優(yōu)勢(shì)有很多,比如高密度編碼,信息容量大;編碼范圍廣;容錯(cuò)能力強(qiáng),具有糾錯(cuò)功能;譯碼可靠性高;可引入加密措施;制作成本低,持久耐用等。
當(dāng)前,二維碼的橫豎矩陣共有40種,最小為21×21,最大為177×177。我們?nèi)粘I钪谐S玫闹Ц秾毝S碼是25×25,微信個(gè)人名片是37×37。
其實(shí)不管是哪一種矩陣類型,都有一些固定不變的區(qū)域。每個(gè)二維碼中都有三個(gè)黑色的大方塊用于掃描定位,不包含任何信息。如果我們把這些不包含任何信息的小格子刨除,那么25×25矩陣中有478個(gè)包含信息的小格子,這些小格子理論上能夠組成2^478種不同的二維碼。
2^478是什么概念呢?就算是全世界近80億人口每個(gè)人都拿著一部手機(jī),同時(shí)按住手機(jī)屏幕刷新二維碼,也需要按大概10^134次才能刷完所有種類的二維碼。
這還只是25×25矩陣的二維碼。我們?cè)賮?lái)看一下33×33矩陣的二維碼,去掉定位用的147個(gè)小格子,它一共包含了942個(gè)表示信息的小格子,這些小格子理論上能夠組成2^942種不同的二維碼,即3.7×10^283(37后面跟了282個(gè)0)。這又是個(gè)什么概念呢?
如果按照目前的消耗速度,即全球每天消耗100億個(gè)二維碼,每年消耗3.65萬(wàn)億個(gè)二維碼,那么33×33矩陣的二維碼足夠人類使用1000萬(wàn)億億…前后總計(jì)33個(gè)億…億億年。
而177×177矩陣的二維碼,理論上能夠組成的排列組合更是一個(gè)天文數(shù)字。換句話說(shuō),我們擔(dān)心二維碼終有一天會(huì)用完,比杞人憂天還要憂天。
退一萬(wàn)萬(wàn)步講,即便有一天二維碼真的用完了,人們還可以開發(fā)出更恐怖的三維碼,它的變換排列組合要比二維碼高出整整一個(gè)維度!
最后,我們平時(shí)在掃描二維碼的時(shí)候,一定要提高警惕,不去掃描那些不明來(lái)歷的二維碼和不明身份人的二維碼信息。另外,在超市等場(chǎng)合排隊(duì)付款的時(shí)候,有些人習(xí)慣提前調(diào)出自己的付款二維碼,這么做會(huì)給一些不法分子提供可乘之機(jī),他們可能趁你不注意的時(shí)候在你身后掃碼把錢轉(zhuǎn)到他們的手機(jī)上去。因此,在排隊(duì)掃碼付款的時(shí)候,我們要注意前后排隊(duì)人群的相隔距離,確認(rèn)安全后再調(diào)出付款二維碼展示給收銀員。