回覆列表
  • 1 # 科普有道

    首先,二維碼用黑白圖形記錄資料符號資訊,這些圖形按照一定的規則以一定的幾何圖形分佈在一個平面(二維方向)上。在程式碼編譯中,巧妙地利用了構成計算機內部邏輯基礎的“0”和“1”的概念,並用與二進位制相對應的幾種幾何形狀來表示文字數字資訊。自動資訊處理可通過@ K 158390050輸入裝置或光電掃描裝置自動讀取來實現;它具有條形碼技術的一些共同特點:每個編碼系統都有自己特定的字符集。每個字元都有一定的寬度;它具有一定的檢測功能等。同時,它還具有自動識別不同線條資訊和處理圖形旋轉變化點的功能。

    其次,二維碼分為堆疊型和矩陣型。目前,矩陣型別是常用的,有幾種矩陣型別,包括code one和qrcode。二維碼現在有多達40個版本。這裡的版本指的是不同的尺寸,從21*21模組到177*177模組,具有不同的尺寸和容量。但是,即使們的大小相同,生成的二維碼也會因容錯率不同而有所不同。

    此外,二維碼具有容錯機制。當生成二維碼時,將新增一些檢查資訊,以確保在圖片識別度較低時仍然可以讀取內容。這兩張地圖的支票資訊比例不同,因此結果也不同。

  • 2 # 科技民兵

    我在研究生期間惡補過一些關於二維碼原理的論文,正好借這個問題的機會跟大家分享一下。題主所說的雷同,應該就是兩個二維碼中黑白小塊大小、位置、數量完全一致的意思,先說結論:如果僅僅看外觀,現實生活中是存在長相雷同的二維碼的。

    大家可能會疑惑了,二維碼雷同,那不就“洩密”了嗎?這裡大家有個誤區,把二維碼當成了一種加密方法,屬於隨機生成的金鑰,其實並不是,二維碼只是原始資訊的一種圖形化表達,好比中文翻譯成英文,只是把字元、中/日文字、數字等轉譯成了黑白方塊的矩陣,其目的並不是防止別人識別。如果原始資訊不同,那麼生成的二維碼自然不同,但是不同的原始資訊,如果採用的編碼方式有差異,是有可能產生雷同的二維碼的。

    題主的疑問可以分解為以下兩點:

    (1) 二維碼有沒有被人類用完的可能?

    (2)有沒有可能存在相同的二維碼,但是其原始資訊卻不一樣?

    可能這也是很多朋友的疑問,全世界每天有很多人都在使用二維碼,據估計可能一天產生的二維碼就達上百億,那麼長此以往下去,二維碼不就用完了嗎?萬一哪天別人新生成的支付寶收款碼正好是我之前用過的,那錢豈不是就轉給我了?哈哈,我想說,你想得美。馬雲爸爸會允許嗎?下面就我自己的理解,給大家講講其中的原理。

    首先需要先補充一點二維碼的知識,不感興趣的朋友可以直接跳到文末解答疑問的部分。

    二維碼原理簡介

    通俗的講,二維碼就是使用某些特定幾何圖形按照一定規律排列從而達到記錄符號資訊的一種編碼技術,編碼的輸入端是網址、電子名片、郵件地址等,輸出端是二維的黑白方塊矩陣。編碼的碼制有很多種,最常見的就是QR(Quick-Response) code,此外還有Data Matrix, Maxi Code等等。

    “三個位置相關的圖形,用於對二維碼的定位,對每個QR碼來說,他們的位置都是固定存的,只是規格不同而已”

    格式資訊:這個代表二維碼的糾錯級別,二維碼總共有為L、M、Q、H四種糾錯等級,L最低,H最高,等級越高,二維碼可被正確掃描的概率就越大,但同時二維碼可攜帶的有效資訊也會變少

    版本資訊:可以理解為二維碼的規格,QR碼符號共有40種規格的矩陣(一般為黑白色),從21x21(版本1),到177x177(版本40),每一版本符號比前一版本 每邊增加4個模組

    資料和糾錯碼:資料就是指真實編碼後的內容,比如網址對應的黑白塊,糾錯字是為了糾正傳輸過程中丟失部分資訊後,能正確解碼用的,日常生活中二維碼經常會被人為扭曲、磨損,此時糾錯碼就派上用場了。

    二維碼特點一:編碼的資料容量量有限制

    二維碼對編碼的資料容量是有限制的,你給我一本新華字典,我肯定是無法給你生成二維碼的,因為新華字典字太多了,遠遠超出了二維碼容許的資料上限。

    二維碼特點二:二維碼的編碼是可逆的,原始資訊和二維碼一一對應

    二維碼的所有編碼步驟都是可逆的,如果給我一個二維碼,並且告訴我編碼步驟中的引數設定,我一定可以把原始資訊給解出來,這就從原理上保證了原始資訊和二維碼的一一對應關係。確實,二維碼的“長相”是有限的,但是可用於編碼的資料量也是有限的,而且二維碼的數量是大於可編碼資訊的組合數量的,這也是保證原始資訊和二維碼一一對應的數學證據。

    回答上面的兩個問題

    (1)二維碼有沒有被人類用完的可能?

    答:問題本身不成立,這是錯誤的把二維碼當成了憑空生成的金鑰之類的東西了,實際上可用於生成二維碼的資料量(數字、字幕、漢字、日文)就是有限的,並且小於二維碼在數學上的數量上限,所以本身問題就不成立。

    (2)有沒有可能存在相同的二維碼,但是其原始資訊卻不一樣?

    答:如果僅從“長相”上相同,即黑白塊數量、大小、位置都一樣,是有可能對應的原始資訊不一樣的,這是因為二維碼的編碼,是原始資訊+糾錯級別+編碼型別(數字、字母、漢字 等)+版本資訊四項因子一起構造的,兩個不同的資訊,比如www.baidu.com和“周杰倫”,如果選擇的糾錯級別、編碼型別、二維碼版本不一樣,是可能生成“長相”完全一致的二維碼的。如果兩張“長相”一樣的二維碼,而且糾錯級別、編碼型別、版本資訊也完全一致,那麼逆推出的原始資訊,一定是一樣的。

    衍生問題

    有朋友可能會繼續問,既然能被生成二維碼的資訊是有限的,那麼總有一天所有組合都被人類用完了,這個時候肯定會出現重複的二維碼,這個怎麼保證安全呢?事實上,二維碼除了以上維度以外,還有一個時間維度,二維碼分靜態二維碼和動態二維碼,靜態二維碼永遠有效,而動態二維碼則在一定時間內有效,比如支付寶的付款碼,這有點像計算機中的HDCP動態分配IP地址技術,如果某個使用者下線了,那麼他的IP地址會分配給新上線的使用者,這樣就能保證一個區域網內的IP地址夠用的,當然如果使用者量達到上限,還是要新增IP地址範圍的,這也是IPv6存在的主要原因。

    結束語

    時間關係,先解釋這麼多,應該可以解答題主的疑問了。以上資訊主要資訊來自於我研究生期間看過的幾篇論文,是我個人的理解,如果有錯誤,歡迎指正。

  • 3 # 充電室

    要想了解為什麼二維碼可以儲存那麼多資訊,或者擁有如此多排列可能,每天要生成那麼多二維碼,為什麼不會有一模一樣的生成呢!我們要先了解二維碼的生成原理和工作方式。

    二維碼又稱QR Code,QR全稱Quick Response,是一個近幾年來移動裝置上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的資訊,也能表示更多的資料型別:比如:字元,數字,日文,中文等等。

    二維碼一共有40個尺寸。官方叫版本Version。Version 1是21 x 21的矩陣,Version 2是 25 x 25的矩陣,Version 3是29的尺寸,每增加一個version,就會增加4的尺寸,公式是:(V-1)*4 + 21(V是版本號) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。

    簡單來說,二維碼組合方式多,生成的資訊容量大不會影響使用。每個二維碼承載的資訊都是一個獨特的資訊,不會出現重複的情況。

    所以不用擔心二維碼多重複的情況。

    二維碼是用某種特定的幾何圖案按照一定的規律在平面中分佈的黑白相間的圖形記錄資料符號第一代條碼技術,它是由一個二維碼矩陣圖形和一個二維碼號以及下方的說明文字組成的,它具有資訊量大、糾錯能力強、識讀速度快、全方面識讀等特點,手機二維碼是可以印刷在報紙、雜誌、廣告、圖書包裝等多種載體長,通過解碼器也就是掃描軟體解讀其內容,通常這個內容是一個網址或者是一組數字或文字。

    所謂的,二維碼可以記錄地球上的每一粒沙子,這句話,是真的!並不是誇大其實

    修改一下,再仔細講一講!這次圖文並茂的講!

    二維碼就是把資訊翻譯成黑白小方塊,然後填到這個大方塊裡。

    這有點類似於中學考試中用的答題卡,就是把資訊變成機器可掃描的圖案,一秒鐘就能知道你得了多少分。當然,二維碼的原理和答題卡還不太一樣,這個我們稍後會講到。

    我們先來介紹二維碼的哥哥——條形碼,也就是超市收銀員掃的那個黑白條。電腦在水平方向上識別粗細不均的黑白條,就能找出藏在其中的商品編號資訊。

    相比於只在一個維度上攜帶資訊的條形碼, “二維碼”在水平、垂直兩個維度上,都攜帶了資訊,也就做成了這個方塊狀的樣子。

    條形碼和二維碼這一對好兄弟,說白了,其實就是給數字、字母、符號等這些字元,換了一身衣服,把它們打扮成了能被手機相機識別的黑白條或塊。

    那麼,最關鍵的問題來了,這些字元,到底是怎麼變成這種二維碼圖案的呢?

    這就要提到一個人類具有劃時代意義的偉大發明:二進位制。

    我們平時使用的數字、字母、漢字等各種字元,雖然畫風完全不同,但是機智的人類,發明了一個方法,使它們都可以被統一轉換成由0和1組成的二進位制數字序列。

    這個轉換的過程叫做編碼。國際上有幾套通用的編碼規則,我們今天就用一個例子來感受一下,編碼是怎麼回事(字幕QR碼通用編碼規則 ISO18004)。

    比如AB這個由兩個英文字母組成的字元。

    根據編碼規則,每一個獨立的英文字母都有唯一一個十進位制數字與之對應(畫表)。

    而像AB這樣的字串,則要在對應數字的基礎上再做運算。,

    而運算結果再轉化成二進位制,就是這一串數字。

    哦對了,整個計算機和網際網路文明,都是建立在這種二進位制編碼上的。你現在看的這個視訊,在你的手機裡,其實也只是一串0和1而已。、

    =======我是分割線==========

    我們回到二維碼的生成原理上。字元在變成只有0和1組成的數字序列後,再進行一系列優化演算法,就得到了最終的二進位制編碼。

    在最後這串編碼中,一個0對應的就是一個白色小方塊,一個1對應的就是一個黑色小方塊,我們把這些小方塊,按照8個一組,填進大方塊裡,這就是一個完整的,可以被手機相機識別的二維碼圖案了。

    這就是二維碼的基本原理了。

  • 中秋節和大豐收的關聯?
  • 熬銀耳蓮子羹時放百合,桂圓,枸杞,大棗,合理嗎?