全球每天消耗上百億個二維碼,一旦用完了怎麼辦?

媒體大律師


不知何時起,二維碼開始出現在人們生活中,從社交加友到超市購物,從掃碼乘車再到各種識別,連街邊賣菜的大伯都使用上了二維碼。這種無現金的支付方式,除了方便省時外,最大的好處就是讓小偷“浪子回頭”,保障了百姓的人身財產安全。

據《中國互聯網絡發展狀況統計報告》顯示,全球近90%的二維碼使用都在中國,早在2016年中國二維碼平均每天的使用量就已超過15億次。二維碼的火爆讓中國跳過了歐美國家的刷卡支付時代,直接來到了移動支付時代,鮮為人知的是改變中國支付方式的人,二維碼的發明者其實是日本人。

追溯二維碼的歷史之前,我們先要了解它的前身一維碼。

最早的一維碼

一維碼就是超市結賬時營業員刷的條形碼,1949年美國發明家伍德蘭從摩爾斯電碼的點和線段中獲得靈感,發明了粗細不同的環狀同心圓碼,具有編碼識別功能,後經改良變成條形碼,並於1951年獲取專利。

伍德蘭

受制於當時科技,識別條形碼需要一個500瓦的鹵素照明燈和巨大的光學聲膜設備,如果應用在商品上,反而把事情變得更復雜,不如手記方便。

到了1952年,該技術就以1.5萬美元的價格轉讓給了美國Philco公司。

第一個條形碼商品

隨著人類科技指數爆炸式地發展,終於在1974年的6月,美國俄亥俄州的一個超市裡,賣出了世界上首個印有條形碼的商品——口香糖,從此條形碼遍地開花。

條形碼原理

它的原理很簡單,條形碼上的黑色條紋吸收了大量光線,白色條紋反射了大量光線,掃碼器的紅外光經過條形碼區,會形成粗細不同的反光紋路,再經轉換器變成電信號,然後將早已輸入計算機的商品身份與之匹配,識別簡單高效。

然而,條形碼只能橫向編碼,長度有限。在物流管理和海運行業,條形碼最高可以達到30位,標記商品足夠,但想對商品進行描述就太困難了。

為了解決高精度汽車零配件的信息匹配問題,例如原材料、規格、封裝時間等,條形碼的容量已經難以滿足。於是,1994年日本電裝公司的工程師原昌宏帶領團隊,發明了現代的二維碼。

原昌宏

如果說一維條形碼具有類似身份證的身份識別功能,那麼二維碼不僅可以識別身份,還可以描述一個人的身高體重、興趣愛好、健康程度等信息。

不同於一維碼,二維碼是在水平和垂直方向上進行信息編寫的,有著更強的多級糾錯能力和識讀能力,儲存容量遠超一維碼。最低格式的二維碼是21x21格式,共有441個格子,每個格子只有黑或白兩種選擇,再減去二維碼固定數量的192個角落的定位框。理論上,21x21格式的二維碼有2的249次方種組合,這個數字有75位。

按照國人每天掃碼15億次計算,需要1600000億億億億億億億年才能掃盡(7個“億”),而地球至今才只有46億年,宇宙138億年,宇宙預期剩餘壽命1400億年。

所以完全不用擔心二維碼刷完,刷到海枯石爛,宇宙毀滅都刷不完,然而這還只是以21x21最小規格來計算的,最大177x177規格的二維碼,難以想象這個數字有多恐怖。

然而,原昌宏及其公司當初想做的只是一種二維碼的公司內部管理體系,並未想到背後還有如此巨大的商業價值,所以當初放棄了對二維碼專利費的索取。

若每人使用一次二維碼就繳納1分錢的專利費,原昌宏早就可以躺在家裡數錢了。


科學薛定諤的貓


    二維碼是有限的,但是用不完。


    二維碼的數量

    做個計算題。目前,最大的二維碼格式是V40,177*177個像素,有2^(177*177)這麼多組合,大約是10的10000次方不同信息組合,算上V1~V39格式的二維碼,那麼二維碼最多有10的12000次方。


    與銀河系相比:銀河系的總質量是10^41千克,那麼所有的二維碼都用上,全銀河系的每千克物質,可以包含10^900個二維碼。


    與地球相比:地球的總體積是10^12立方千米,也就是10^29立方厘米,一立方厘米相當於一塊橡皮那麼大,所有的二維碼都用上,那麼地球每一立方厘米有10^800個不同的二維碼。


    結論,二維碼數量有限,但是根本用不完。

    科普二維碼

    二維碼是在1994年,一家日本的公司發明的,最開始是彩色的,用戶追蹤旗下公司零部件的維修情況,後來為了提升效率,改進成黑白色。


    二維碼採用特定的幾何圖形,將黑白相見的圖形有規律的分佈在二維反向上,其中白塊表示“0”,黑塊表示“1”,便於計算機識別。


    在二維碼上有不同的區域,標識不同的信息,比如對齊模式、定時模式、安靜區域、版本信息、數據單元等。


    總之,二維碼有廣泛的用途,可以用來記錄信息和傳遞信息,並且具有唯一性,常見的用途有手機支付、信息獲取、網站跳轉、防偽溯源、會員管理等,二維碼應用到了人們的方方面面,成為生活中不可獲取的一部分。二維碼的容量巨大,不用擔心哪天被用完或者不夠用。

如果覺得對你有幫助,可以多多點贊哦,也可以隨手點個關注哦,謝謝。

Geek視界


如果明白了二維碼的原理,就不會有是否會用完這樣的疑問。

手機號碼、車牌號、IP地址等,就有被用完的可能性。原因在於它們不允許重複。而類似姓名、網上暱稱、個性簽名等等,則允許重複,所以永遠也不會用完。比如現在一大堆人姓名是張偉、李子涵等。

注意:二維碼是允許重複的。

二維碼看上去顯得很神秘,事實上它只不過就代表一串文字(多數情況下,99%如此,下邊的討論不再註明),在整個過程中,也沒有用到加密技術。比方說下面這個二維碼,就是“犍為真人”四個漢字。

這麼花裡胡哨的一張二維碼,就完全等同於文字“犍為真人”。那麼問題來了,既然完全等同,為什麼不直接用文字呢?這就涉及到打字的辛苦。打字速度再快,也是需要花時間的,4個字還好,如果400個呢?另外,像11位手機號,我們打字的時候都要反覆對照幾遍,還不保證一定正確不粗心。於是二維碼就發明了,它主要針對手機、平板。二維碼目的就是用來複制一串文字,避免打字錄入。比方說,我要給你一個手機號(比如海報,廣告),以前要把手機號打印在紙上,你照著一個一個輸入。現在,我把手機號轉換成二維碼打印到紙上,你用手機對著紙上的二維碼掃一掃,直接就識別出來11位數字。

當我們用手機掃二維碼時,會啟動手機的自動識別程序,將圖片識別成一串文字,於是就輕鬆實現了類似電腦複製粘貼的功能。說得更直白一點,假設未來圖像識別技術非常發達,那麼二維碼可能就慢慢消失了,因為直接掃文字就可以了。也就是說,那時候我把上面那張二維碼圖換成醒目的“犍為真人”四個大字,是完全沒有區別的。

那麼為什麼現階段二維碼可以輕鬆識別?那就是因為它用到了特殊的,針對計算機(手機也是計算機)攝像頭的算法,天生就是給計算機看的。這就好比,盲人看(摸)普通文字很費勁,他們用盲文。相反普通人看盲文又覺得是“讀天書”。

大家都知道,計算機用二進制表示信息。二維碼的那些黑白方塊就是二進制。黑色代表1白色代表0。黑白必須對比清晰,然後攝像頭拍照後轉換成010101這樣的二進制。之後用較複雜的解碼算法轉換成文字。

算法中最複雜的設計就是糾錯。意思是說,即使識別錯了一部分黑白塊,依然可以成功解碼。舉個人類識別的例子。比方“38”這樣的文字形式就不合理,因為容易把3錯誤判別成8。而“三八”,“叄捌”就很好。而且即使這樣的文字被遮擋一部分或很模糊,依然可以被人類辨別。這就叫“糾錯”或“容錯”。除了糾錯,二維碼還涉及到定位參考,掩碼等技術。這裡就不再展開介紹。

我們再來看看二維碼的容量到底有多大。在國內,二維碼多數用的都是QR碼。QR碼最多能表示7089個純數字,或者4276個字母(形如網址的字符),或者2953字節的二進制(相當於2.9KB)。還有日文中文等最多表示數就不再列出。

已經足夠多了!

而我們平常見到的二維碼,最多的就是網址,其次是純數字。比如微信掃碼支付(商家掃你),公交地鐵掃碼,共享單車掃碼,火車票實際上代表的就是一堆純數字。而關注公眾號,微信支付(你掃商家),就是一個網址。這些數字或二維碼,通常長度還不到30位。

再強調一下,二維碼多數時候僅僅就代表一串文字。比方說你掃商家的二維碼,實際上就是一個網址。這時候,你自己在微信瀏覽器中手打輸入這個網址,然後打開,效果是一樣的(彈出一個輸入金額的畫面)。區別就是手打網址,要打半天字浪費時間,還容易輸錯。

明白了這些道理,就知道了二維碼是用不完的。一方面,二維碼允許重複。另一方面,二維碼幾千的最大容量,足夠表示日常的網址和數字編碼。


犍為真人


全球每天消耗上百億個二維碼,一旦用完了怎麼辦?

我們不清楚其他國家的生活和二維碼之間的關係,但至少在中國,二維碼已經和我們日常綁在一起,我們很難想象一個離開了二維碼的生活是什麼樣子,萬一二維碼用完了呢?

二維碼是誰發明的?

二維碼種類很多,常見的有QR Code、Data Matrix、Code 16K、MaxiCode、Aztec、Vericode、PDF417、Code 49等,很多產品上都會貼上各種標準的二維碼,但我們日常使用的,比如各種支付碼格式是QR Code,所以來自國外的朋友會用QR Code來稱呼我們日常使用的各種支付碼!下文以QR CODE來說明。

QR Code碼是1994年由日本DW公司發明的,它誕生後,就在信息量大,糾錯能力強等優點絕殺了二維碼,在日本和全世界應用廣泛,我們日常也已經離不開二維碼,平均每天都會掃碼數個甚至數十個,而各種支付碼為保證安全是即時產生的,即用過一次即失效,下次重新產生,那麼吃瓜群眾有一個問題,會不會某天二維碼用完了呢?

QR CODE數據編碼方式

要說明會不會用完,首先得來了解下QR CODE編碼方式,下圖是一張QR CODE基底圖,不含信息,僅僅表示編碼:

QR CODE最明顯的特徵是除了右下角外其他三個角上是一個巨大的回字形定位標誌,其他主要的區域有數據與容錯,版本信息,糾正標誌等,包含QR CODE能不能用完的關鍵是數據編碼的排列組合能不能窮盡!一個QR CODE最大的能包含多少信息呢?

一張小小的二維碼搭載的信息量是驚人的,那麼它所包含的組合總共可以有多少種呢?

QR CODE空白區域表示0,黑色區域表示1,那麼數一數它最大面積的版本有多少格子就能算出它有多少種可能了!QR CODE總共有40種不同密度的結構:

最小的版本1編碼模塊為21×21,編碼數量總有:2^(21×21)

最大的版本40為177×177,編碼數量總共有:2^(177×177)碼

前者大約有5.6×10^132個編碼

後者大約有:9.3×10^9430個二維碼

可能大家對這個數量並沒啥概念,但宇宙中的原子數量總共之有10^80個,所以即使是最小的的那個二維碼也可以給宇宙中每個原子編制一個二維碼,而且還綽綽有餘!而更大的版本40則可以對所有的“平行宇宙”進行編碼,也許還是編不完!

QR CODE的容錯功能

從上文我們知道了QR CODE是用不完的,但QR CODE本身包含的信息量太大,而我們有又用不到這些新的時候就有新的玩法了,我們可以將容錯信息編制進去,當QR CODE汙損時將會起到糾錯作用!

從7%到30%不等,但糾錯效果越好,面積也將越大,所以大部分都取折中的15%糾錯率,優點類似於服務器中硬盤陣列,犧牲容量的方式來保證數據的安全性,如下是硬盤陣列的容錯比例:

RAID0:無容錯,可靠性降低一半

RAID1:可以損壞一半硬盤

RAID5,可以損壞一個硬盤

RAID10,可以損壞一半硬盤(理想狀態下)

當然硬盤陣列的的容錯和QR CODE容錯原理是不一樣的,但兩者宗旨是一樣的,保證數據安全!

QR CODE的安全性

其實我們要說的不是加密,而是包含有害信息,因為它是隱含的信息,因此即使包含有害信息我們也無法看到,比如包含欺騙、誘導或者淫穢色情甚至木馬等信息時危害是很大的,因此對於來歷不明的二維碼我們要謹慎“掃一掃”,而且手機上安全軟件不要忘了裝!


星辰大海路上的種花家


再瞭解二維碼數量之前,我們先了解二維碼的原理。

二維碼的原理

二維碼其實就是由0、1組成的二進制,我們看到的二維碼每個方塊,都有意義,其中白色的方塊代表0,黑色方塊代表1。

而我們日常用的比較常見的是37*37的格子,其中三個角都有一個固定的方塊,這個方塊的大小是固定的,是用於識別時,方便定位二維碼防線的用途。大小有7*7個像素點。

所以,37*37的二維碼格子,可以產生37x37-49x3=1222個格子,又因為每個格子僅僅代表0或1兩種情況,因此,共有2^1222種排列組合情況,也就是說,一個37*37的二維碼格子,可以產生2^1222個二維碼。

可能這樣說,大家沒概念,我們可以和全世界的人口做個對比,根據世界人口時鐘比較,截止到2019年10月20號下午3點13分,目前全世界人口大概為7744402531人(77.44億人),如果想要用完所有的二維碼,大概每個人需要用完10^(292)個,並且還有非常多的剩餘。

還有,我們宇宙中有非常多的基本粒子,甚至每個人體內都有上萬億個中微子穿過,由此可知宇宙中的粒子數是多麼的恐怖。據科學家推算,全宇宙中的粒子數大概有3.28×10^80(肯定有誤差,這已經是非常保守的估計),而二維碼比全宇宙中所有的粒子加起來還要多。

由此可見,二維碼雖然是有限多的,但卻用不完。

而37*37的二維碼只是其中一種,還有40*40,21*21等40多種規格,因此不用擔心二維碼被消耗完的問題。

識別二維碼的原理

二維碼雖然在人類看來像天書一樣,並且每個二維碼看起來都差不多,但在機器眼裡,每個二維碼都不相同。

首先白色之所以是白色,是因為它能反射各種波長的可見光,而黑色則相反,能吸收所有波長的可見光。所以當機器在靠近二維碼並識別時,機器會根據不同的波長判斷這個格子是白色還是黑色。

由於黑色和白色代表著不同的數字“0”“1”,所以機器也會自動識別出這個二維碼不同的排列方式,其實還要注意一點,機器在識別圖形時,會由於各種原因出現差錯,而二維碼之所以很少出錯是因為它自身儲存一定容量的糾錯率。

比如我說:“我有一個蘋果”,當你聽錯一個字之後,你可能會誤解我的意思,但如果我說:“我有一個蘋果,英文名叫apple,喬布斯用它做手機的名字....”等等,看似一大堆的廢話,你再識別我的信息時,就很難出錯了。二維碼也有一些方格,對應的是這些廢話,防止識別錯誤。其實這也是信息學的香農第三定理。

當機器識別出二維碼不同的排列方式之後,然後就會像我們打開網頁一樣,每個不同的排列方式,對應著不同的“網頁”,而這個網頁被人們提前編撰過信息,所以識別出這個“網頁”時,對應的信息也會被識別出來。

因此,二維碼不僅能包含簡單的價格,也可以包含一個網頁,一個自我介紹,一份簡歷等等任何你想輸入進去的東西。


鍾銘聊科學


其實你不用擔心。二維碼是有限的,但是用不完。

  二維碼的數量

  做個計算題。目前,最大的二維碼格式是V40,177*177個像素,有2^(177*177)這麼多組合,大約是10的10000次方不同信息組合,算上V1~V39格式的二維碼,那麼二維碼最多有10的12000次方。

  與銀河系相比:銀河系的總質量是10^41千克,那麼所有的二維碼都用上,全銀河系的每千克物質,可以包含10^900個二維碼。

  與地球相比:地球的總體積是10^12立方千米,也就是10^29立方厘米,一立方厘米相當於一塊橡皮那麼大,所有的二維碼都用上,那麼地球每一立方厘米有10^800個不同的二維碼。

  結論,二維碼數量有限,但是根本用不完。


趣視先鋒


答:二維碼數量雖然是有限的,但是多到用不完,永遠也用不完。


二維碼原理

二維碼發明於1994年,相對於一維的條形碼,二維碼具有更大的容量;二維碼本質上就是一個矩陣,在常見的二維碼中,白色色塊表示“0”,黑色色塊表示“1”,經過掃描器讀取後的二維碼就成了一段特殊的代碼,計算機從而識別出代碼中的有效信息。

二維碼的數量

二維碼能表示的數量和二維碼自身的像素有關,像素越高,二維碼錶示的數量成指數增長,但是讀取二維碼和掃描器的像素有關,在各種二維碼當中,我們常用的編碼方式是QR Code,目前該編碼方式用到最大的像素為177*177=31329像素,那麼理論上,該編碼方式的組合數量為:

2^(177*177)≈10^20000;

這是一個非常巨大的數值,哪怕全球人口有1000億,每人每秒鐘消耗1億個二維碼,即便從宇宙大爆炸開始至今(138億年)一直在使用,也就消耗了4.35*10^36個二維碼,遠遠低於177*177像素的二維碼數量,更何況二維碼的像素是可以繼續擴展的。

實際上,二維碼有些固定信息以及糾錯碼,所以固定像素的二維碼數量要低於理論值,但是數量也多到用不完,而且平常我們也用不到177*177這麼高像素的二維碼。


生活中的二維碼

平常我們用得最多的就是支付二維碼,每張二維碼裡面,其實包含了你的支付平臺、賬戶信息、支付金額和時間等等,你換一張支付碼,其中的數據跟著變化,但是信息所佔長度未變,時間隨時都在變化沒有終點,所以屬於你的支付碼是用不完的。


我的內容就到這裡,喜歡我們文章的讀者朋友,記得點擊關注我們——艾伯史密斯!


艾伯史密斯


二維碼最初由日本的一個程序員所發明,跟傳統的條形碼相比,二維碼相當於是二維化的條形碼,二維碼的數量是有限的,有人說全球每天消耗上百億個二維碼,那麼二維碼會有用完的一天嗎?


二維碼的出現極大地方便了人們的生活,別的不說,光就我們每一天使用的二維碼支付,就大大提高了購物的速率。而我們每天使用的二維碼,每隔一段時間都是會不停地變化的,隨機進行黑白組合。仔細看二維碼你可以發現,在二維碼中有三個比較大的點,而這三個點是用來定位的,不論你是正面掃描還是傾斜掃描,或者旋轉180°掃描,都可以掃描出二維碼來。

二維碼最初是彩色的,後來為了提升效率,改進成了黑白色,二維碼採用特定的幾何圖形,將黑白相間的圖形有規律地分佈在二維平面內,其中白色的塊代表數字“0”,黑色的塊代表數字“1”,這是為了便於計算機的識別。二維碼上有不同的區域,每一個區域標誌著不同的信息。二維碼的組合方式雖然有限,但是這也是一個天文數字,根本不用擔心某一天它會被用完。


二維碼的組合數量跟二維碼自身的像素密集點有關,簡而言之,像素越高,那麼二維碼的組合數量就會越多。目前的二維碼中,最大的二維碼格式是V40,擁有177×177個像素點,那麼這麼多的像素點,能夠形成的所有二維碼的數目是多少呢?這是一個很容易計算的問題,也就是2^(177×177)個,差不多是10的10000次方,這還只是V40格式的二維碼組合數量,如果算上V1到V39的,恐怕還要多上不少。

所以說,即使地球上每天消耗上百億個二維碼,那麼等到二維碼用完,恐怕到宇宙滅亡的那一天都不可能,更不用說了,二維碼的像素密集點還可以進一步擴展,而一旦進一步擴展的話,數量又是呈幾何爆炸式增長。所以結論是,二維碼雖然數量有限,但是根本就是用不完的,二維碼有廣泛的用途,它已經成為了生活必不可少的一部分,二維碼的容量巨大,不用擔心哪天被用完或者是不夠用。


鏡像宇宙


二維碼是有限的,但目前來看已經非常夠用了,你估計等不到耗盡的那一天。我們拿一種二維碼來看,其中最大可以177*177的點的矩陣組成,這意味著理論上二維碼有(2的31329次方)可能。這裡還不包括其他version的二維碼的數字。

再來看看二維碼原理,二維碼是使用若干個與二進制相對應的幾何形體來表示文字數值信息,將信息換算成二進制的幾何形體,並生成一個矩陣圖。在我們所需的二維碼生成後,要用專門的解碼器解碼,一般分為硬解碼和軟解碼。軟解碼是通過抓取圖形之後傳送到二維碼庫裡去對比解碼,硬解碼是探頭抓取圖形之後指用軟件直接解碼。不僅如此對於二維碼而言,二維碼可以存儲很多信息,比如文字,圖像,網址鏈接等,其具有編碼密度高,信息量大,可靠性高,編碼範圍廣等優點。所以二維碼根本不用擔心用完。

我們再來看一個簡單的案例,比如我們常用的支付寶,微信那些動態支付碼,其實是根據時間撮來變化的,年月日時分秒,時間是無限的,二維碼也是無限的。這麼解釋你能明白嗎,只要二維碼體系內的小方格稍微動一下,就是指數級的增加,答案是永遠沒有用完的一天!


科技之窗


在討論這個問題之前,我們先看看什麼是二維碼:


所謂的二維碼,其實就是把一些信息以黑白圖像的形式展現出來。具體實現的原理就是:我們可以製造一個固定長度和高度的區域,然後把我們的信息寫成1,0二進制形式。然後再把二進制的1表示成為黑方框,0表示一個空(白)方框。這樣,把這些黑白相間的方框寫入我們劃定的區域,就組成了一個二維碼圖片。當然了,二維碼圖片裡面還有一些定位圖形,輔助定位圖形,等特徵標識圖。出去這些標識符之後,剩下的區域就可以寫入我們剛才轉換過後的黑白方格了。這樣,一個信息就順利轉換成為了二維碼。

其實,上面的原理我們也可以看到,二維碼能夠表示信息對多少,和能夠寫入多少二進制數有關。目前我們常用的二維碼是QR碼標準,這個標準中,一副圖形長可以寫入177個方框,寬也可以寫入177個。那麼這樣就是可以寫入177*177=31329個方框(未除去識別圖形站的面積)。這麼多方框以為著可以寫入2^31329個二進制數。如果我們用ASCII碼錶示信息,一個ASCII碼佔位8,則一個177*177的數據存儲空間可以寫入長度是L=177*177/8=3916個字符。也就是說,一個二維碼可以表示一個長度是3916的任意字符串。

在生活中,我們使用要生成二維碼的字符串長度也就是幾十個,比如一個網址,長度很短,根本就不到3916位。當然了,如果你的信息量很大,超過了3916個字符,那麼二維碼確實就表示不出來了。但就目前來看,3916長度的字符,已經足夠我們表示任何信息了。


分享到:


相關文章: