技術(shù)科普文:二維碼里面到底是什么

?

由于很多同學(xué)還沒有跟上前面系列課程的進(jìn)度,因此,今天暫停課程,來講一篇技術(shù)科普文:二維碼里面到底是什么?

生活中,經(jīng)常能夠看到二維碼,到處充斥著掃一掃,那么,究竟二維碼里面是什么?能用二維碼做什么?如何創(chuàng)建和使用?如何判斷二維碼是否安全?

二維碼的本質(zhì)

二維碼就是根據(jù)某種約定的編碼方式將一段文本信息轉(zhuǎn)換為一個能夠被解碼識別的圖片。

其本質(zhì)就是一段文本信息。

既然是文本信息,可能是如下一些信息用途類別:

人的姓名/一個數(shù)字/一段文字/一個網(wǎng)址/一個驗(yàn)證碼/一個訂單ID/會員ID/優(yōu)惠券編號/位置坐標(biāo)/WiFi密碼......

也就是可能是任意文本信息,除了有長度限制,沒有其它限制。二維碼最大數(shù)據(jù)含量大約是1850個字符。

那么關(guān)鍵點(diǎn)就是編碼方式,到底什么是編碼方式?

年紀(jì)稍大的人應(yīng)該知道,在電話沒有普及之前,都是用電報來傳遞信息。

電報就是將需要發(fā)送的文本信息,編碼,通過無線電波發(fā)射,接收方接收后進(jìn)行解碼,翻譯回原來的文本信息。

這里的無線電波和二維碼是類似的。

密碼加密也是一種編碼方式

至于如何編碼,編碼之后變成了什么信息數(shù)據(jù),這在不同的規(guī)則或約定方法下是不一樣的。

舉一個密碼加密的例子:

h e l l o w o r l d

將每個字母替換為該字母在字母表中向后順序移動5個位置的字母,碰到末尾則回到頭部

結(jié)果如下:

m j q q t b t w q i

這里的字母表和數(shù)字5就是關(guān)鍵的鑰匙,只有兩者皆知道的情況下才能解碼

但是這種加密方式有很大的弱點(diǎn),因?yàn)樽帜傅氖褂妙l率通過大數(shù)據(jù)是可以統(tǒng)計出來的,比如元音字母的概率會更大,如果得到一定量的加密后的信息,通過統(tǒng)計加密后的字母的使用頻率,和原始使用頻率進(jìn)行對比,就容易發(fā)現(xiàn)對照關(guān)系,從而推算出加密的方法。

二維碼的編碼方式是公開的,是為了使用二維碼的一方能夠按照公開的編碼方式進(jìn)行逆向的解碼。

二維碼還有一個很好的特點(diǎn),就是具有一定的容錯能力。二維條碼因穿孔、污損等引起局部損壞時,仍然可以正確得到識讀,損毀面積達(dá)50%仍可恢復(fù)信息。這同樣是根據(jù)編碼規(guī)則從數(shù)學(xué)原理上進(jìn)行保證。

所以大家經(jīng)常看到二維碼的正中間會放一個小圖標(biāo),盡管占據(jù)了二維碼的部分面積,但仍然可以正常識別出來。

二維碼圖片的編碼原理

這里大概介紹一下QR Code這種二維碼的編碼規(guī)則:

位置探測圖形,位置探測圖形分隔符,定位圖形:對二維碼的定位使用,對于每個QR碼來說,位置是固定的,大小規(guī)格有所差異

校正圖形:如果規(guī)格確定,則校正圖形的數(shù)量以及位置也確定

格式信息:用來表示該二維碼的糾錯級別,總共有L、M、Q、H四種,分別有不同的糾錯率

版本信息:共有40種規(guī)格的矩陣(一般為黑白色),從21x21(版本1)到177x177(版本40),每種版本符號比前版本 每邊增加4個模塊。

數(shù)據(jù)和糾錯碼字:實(shí)際的二維碼數(shù)據(jù)信息以及糾錯碼字(可以用于修正二維碼損壞所帶來的錯誤)。

簡要的編碼過程:

1.數(shù)據(jù)分析:確定編碼的字符類型,然后按對應(yīng)的字符集轉(zhuǎn)換成符號字符;

2.數(shù)據(jù)編碼:將數(shù)據(jù)字符轉(zhuǎn)換為位流,每8位一個碼字,整體構(gòu)成一個數(shù)據(jù)的碼字序列。

3.糾錯編碼:將碼字序列分塊,根據(jù)糾錯等級和分塊的碼字,產(chǎn)生糾錯碼字,并把糾錯碼字加入到數(shù)據(jù)碼字序列后面,成為一個新的序列。

4.構(gòu)造最終數(shù)據(jù)信息:在規(guī)格確定的條件下,將上面產(chǎn)生的序列按次序放到分塊中

5.構(gòu)造矩陣:將探測圖形、分隔符、定位圖形、校正圖形和碼字模塊放入矩陣中。

6. 掩摸:將掩摸圖形用于符號的編碼區(qū)域,使得二維碼圖形中的深色和淺色(黑色和白色)區(qū)域能夠比率最優(yōu)的分布。

7. 格式和版本信息:生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)。

以上僅僅是最簡單的說明,真正的編碼還有很多的細(xì)節(jié),以及對應(yīng)的數(shù)學(xué)計算公式和規(guī)則,具體信息,做程序的時候再去搜索相關(guān)的信息吧。

能用二維碼做什么

其實(shí)應(yīng)該說,能用一段文本信息做什么,二維碼就能做什么。

關(guān)鍵不在于二維碼,而在于如何定義這段文本信息,約定好文本信息的用途,二維碼只是一種編碼方式,便于通過設(shè)備用程序識別而已。

下面就是一些常見用途:

信息獲?。⒌貓D、WIFI密碼、資料)

網(wǎng)站跳轉(zhuǎn)(跳轉(zhuǎn)到微博、手機(jī)網(wǎng)站、網(wǎng)站)

廣告推送(用戶掃碼,直接瀏覽商家推送的視頻、音頻廣告)

手機(jī)電商(用戶掃碼、手機(jī)直接購物下單)

防偽溯源(用戶掃碼、即可查看生產(chǎn)地;同時后臺可以獲取最終消費(fèi)地)

優(yōu)惠促銷(用戶掃碼,下載電子優(yōu)惠券,抽獎)

會員管理(用戶手機(jī)上獲取電子會員信息、VIP服務(wù))

手機(jī)支付(掃描商品二維碼,通過銀行或第三方支付提供的手機(jī)端通道完成支付)

如何創(chuàng)建一個二維碼圖片

如果掌握了二維碼的編碼方式,是可以通過紙和筆將二維碼圖片畫出來的,就是太麻煩了

一般是通過編寫計算機(jī)程序的方式將文本信息編碼為一個二維碼圖片

如果普通人不會編寫計算機(jī)程序,那么就只能利用別人編寫好的程序了

網(wǎng)上有很多網(wǎng)站,提供在線生成二維碼的功能

具體是哪些,這里就不說了,大家用關(guān)鍵字【二維碼生成】到某著名搜索引擎去搜索

一般在左側(cè)輸入一段文字,點(diǎn)擊生成按鈕,右側(cè)就會看到生成好的二維碼圖片了

如何使用一個二維碼圖片

生成一個二維碼圖片后,可以印刷出來,也可以用圖片文件傳輸給別人的方式來進(jìn)行使用

使用方最重要的是需要一個程序來掃描分析圖片,將里面的信息進(jìn)行解碼程序處理,翻譯出原始的文本信息

得到里面的文本信息之后,再看該信息是用于什么用途的

一般發(fā)布這個圖片的時候會附帶詳細(xì)說明該二維碼的的用途

那么根據(jù)要求,采用對應(yīng)的軟件進(jìn)行相應(yīng)的處理

例如,最常見的,掃描一個二維碼,顯示一個微信公眾號的主頁,可以關(guān)注這個微信公眾號

那么這個對應(yīng)的軟件就是微信App,它會進(jìn)行拍照掃描解碼,然后根據(jù)約定的規(guī)則,拿到一個微信公眾號的唯一ID,然后去服務(wù)器獲取這個微信公眾號的相關(guān)信息,顯示在App中,并提供關(guān)注等功能

所以,僅有二維碼圖片是遠(yuǎn)遠(yuǎn)不夠的,還需要相應(yīng)的約定用途說明,以及對應(yīng)的處理軟件。

如何判斷二維碼是否安全

經(jīng)常有聽到新聞?wù)f,某人掃了一個二維碼,然后銀行里的錢或者賬戶里的錢就被扣掉了,聽起來蠻嚇人的,要如何避免這種情況呢

一般來說,二維碼圖片本質(zhì)就是一段文本信息,從原理上說,一段文本信息是沒有能力進(jìn)行任何處理的

最大的可能就是這段文本信息可能是一個惡意網(wǎng)站的網(wǎng)址,或者是一個惡意軟件的下載網(wǎng)址

只有我們不去訪問這個網(wǎng)站,或者下載這個軟件,或者不安裝這個軟件,是不會受到傷害的

所以,在按照對方要求掃碼之前,建議去下載一個專門掃描二維碼的安全軟件,它只有掃碼功能,只能顯示出二維碼里面的信息給你看,即不能安裝程序,也不會去訪問網(wǎng)址,我們先看看里面是什么文本信息,然后再結(jié)合其它周邊信息來判斷是否足夠安全。這種掃碼軟件應(yīng)該還是有很多多,具體大家自己搜索一下。

最后說明一點(diǎn),安全是多方面,多重手段來保護(hù)的,二維碼僅僅只是一個工具。盡量注意以下一些原則:

1.不要泄漏驗(yàn)證碼。

2.保護(hù)好自己的手機(jī),如果手機(jī)遺失優(yōu)先到手機(jī)運(yùn)營商進(jìn)行掛失。然后掛失相關(guān)信用卡或者銀行卡。

3.不同網(wǎng)站或App的賬號使用不同的密碼,防止某一個系統(tǒng)被攻破之后,利用相同賬號密碼去撞庫攻擊其它系統(tǒng)。

4.收到不明信息,盡量先去網(wǎng)站搜索:關(guān)鍵字+騙子 試試看是否別人碰到同樣的騙局或情況。

往期教程

因?yàn)榻坛淌窍盗薪坛?,前后關(guān)聯(lián)性非常強(qiáng),如果有希望每天花半小時,零基礎(chǔ)學(xué)習(xí)編程的,請按照歷史消息發(fā)布時間先后次序進(jìn)行閱讀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容