小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

二維碼知識(shí)介紹

 昵稱(chēng)7Bw0IOvb 2018-02-07

一、二維碼的分類(lèi)

二維碼,從字面上看就是用兩個(gè)維度(水平方向和垂直方向)來(lái)進(jìn)行數(shù)據(jù)的編碼,條形碼只利用了一個(gè)維度(水平方向)表示信息,在另一個(gè)維度(垂直方向)沒(méi)有意義,所以二維碼比條形碼有著更高的數(shù)據(jù)存儲(chǔ)容量。

從形成方式上,二維碼可以分為兩類(lèi),

1、堆疊式二維碼:在一維條形碼的基礎(chǔ)上,將多個(gè)條形碼堆積在一起進(jìn)行編碼,常見(jiàn)的編碼標(biāo)準(zhǔn)有PDF417等

image

                          圖1 PDF417碼示例

2、矩陣式二維碼:在一個(gè)矩陣空間中通過(guò)黑色和白色的方塊進(jìn)行信息的表示,黑色的方塊表示1,白色的方塊表示0,相應(yīng)的組合表示了一系列的信息,常見(jiàn)的編碼標(biāo)準(zhǔn)有QR 碼,漢信碼等

                    image

       圖2 QR碼示例                                  圖3 漢信碼示例

PDF417由美國(guó)研發(fā),在美國(guó)地區(qū)使用廣泛

漢信碼由中國(guó)自主研發(fā),目前已在政府相關(guān)領(lǐng)域得到初步的使用。

QR碼由日本研發(fā),目前很多的應(yīng)用都是用QR碼進(jìn)行編碼,譯碼

目前使用最廣的是QR碼,所以接下來(lái)的內(nèi)容會(huì)對(duì)QR碼進(jìn)行講解,下文中提到的二維碼,指的就是QR碼

QR碼分為40個(gè)版本,版本1由21x21個(gè)方塊組成,每個(gè)版本增加4個(gè)方塊,版本40由177x177個(gè)方塊組成。每增加一個(gè)版本,QR碼可儲(chǔ)存的信息數(shù)量也隨之增多。

版本1的二維碼最多可以?xún)?chǔ)存25個(gè)字符或41個(gè)數(shù)字,而版本40的二維碼最多可以?xún)?chǔ)存4296個(gè)字符或7089個(gè)數(shù)字

二、二維碼的結(jié)構(gòu)

一個(gè)二維碼可以分為兩個(gè)部分,功能圖形和編碼區(qū)域

image

                                         圖4

功能圖形起到定位的作用

位置探測(cè)圖形:由三個(gè)黑白相間的大正方形嵌套組成,分別位于二維碼左上角、右上角、左下角,目的是為了確定二維碼的大小和位置。

定位圖形       :由兩條黑白相間的直線組成,便于確定二維碼的角度,糾正扭曲。

校正圖形       :僅在版本2以上存在,由三個(gè)黑白相間的小正方形嵌套組成,便于確定中心,糾正扭曲。

數(shù)據(jù)區(qū)記錄了具體的數(shù)據(jù)信息,糾錯(cuò)信息與版本信息。

數(shù)據(jù)和糾錯(cuò)碼:記錄了數(shù)據(jù)信息和相應(yīng)的糾錯(cuò)碼,糾錯(cuò)碼的存在使得當(dāng)二維碼的數(shù)據(jù)出現(xiàn)允許范圍內(nèi)的錯(cuò)誤時(shí),也可以正確解碼。

版本信息       :僅在版本7以上存在,記錄具體的版本信息。

格式信息       :記錄使用的掩碼和糾錯(cuò)等級(jí)。

此外二維碼的外圍還留有一圈空白區(qū),主要是為了便于識(shí)別而存在。

三、數(shù)據(jù)編碼與實(shí)例

針對(duì)不同的數(shù)據(jù),QR碼設(shè)計(jì)了不同的數(shù)據(jù)編碼編碼方式,我們可以根據(jù)數(shù)據(jù)的種類(lèi)選擇合適的編碼方式進(jìn)行編碼。

數(shù)字編碼(Numeric)        :可編碼0-9,10個(gè)數(shù)字,如果需要編碼的數(shù)字的個(gè)數(shù)不是3的倍數(shù),最后剩下的1或2位數(shù)會(huì)被轉(zhuǎn)成4或7bits,其它的每3位數(shù)字會(huì)根據(jù)不同版本被編成 10,12,14bits

字符編碼(Alphanumeric) :可編碼0-9,大寫(xiě)的A-Z,以及9個(gè)其他的字符(space $ % * + – . / :);

8位字節(jié)模式(8-bit Byte)     :可編碼JIS X 0201的8位Latin/Kana字符集

除此之外,QR還提供了其他的編碼方式,每一個(gè)編碼方式都有其獨(dú)有的id進(jìn)行標(biāo)識(shí),這些標(biāo)識(shí)會(huì)記錄在數(shù)據(jù)區(qū)的前端,使得解碼器可以根據(jù)二維碼使用的編碼方式對(duì)數(shù)據(jù)進(jìn)行解碼

      image

                                  圖5   一些編碼方式及其標(biāo)識(shí)

糾錯(cuò)碼

二維碼存在4個(gè)級(jí)別的糾錯(cuò)等級(jí),每個(gè)糾錯(cuò)級(jí)別可修正的錯(cuò)誤與標(biāo)識(shí)見(jiàn)圖6,糾錯(cuò)級(jí)別越高,可以修正的錯(cuò)誤就越多,需要的糾錯(cuò)碼的數(shù)量也變多,相應(yīng)的可儲(chǔ)存的數(shù)據(jù)就會(huì)減少,版本1的二維碼在L級(jí)別下可儲(chǔ)存25個(gè)字符,在H級(jí)別下只能儲(chǔ)存10個(gè)字符。

          image

                             圖6

下面給一個(gè)01234567在版本1下用數(shù)字編碼(Numeric),選擇的糾錯(cuò)級(jí)別是M的示例

第一步,將定位圖案放到二維碼中

      image

                         圖7

第二步:進(jìn)行數(shù)據(jù)編碼

根據(jù)圖8,版本1下,采用Numeric Mode編碼時(shí),每三個(gè)數(shù)字需要10個(gè)bits進(jìn)行標(biāo)示

image

                                            圖8

012 ->0000001100

345 ->0101011001

67 ->1000011

組合起來(lái)為

0000001100 0101011001 1000011

 

在數(shù)據(jù)的頭尾加上一些標(biāo)準(zhǔn)要求的信息

數(shù)字個(gè)數(shù) (8) = 0000001000

編碼格式      =0001

終止符         =0000

組合起來(lái)為

0000001100 0101011001 1000011->

0001 0000001000 0000001100 0101011001 1000011 0000

 

按8bit一組重新排列,末尾不足的補(bǔ)零

0001 0000001000 0000001100 0101011001 1000011 0000->

00010000 00100000 00001100 01010110 01100001 10000000

 

不足最大bit的添加補(bǔ)齊碼(11101100 00010001),版本1 M下需要128bits

00010000 00100000 00001100 01010110 01100001

10000000->

00010000 00100000 00001100 01010110 01100001

10000000 11101100 00010001 11101100 00010001

11101100 00010001 11101100 00010001 11101100

00010001

第三步:添加糾錯(cuò)碼

糾錯(cuò)碼根據(jù)數(shù)據(jù)利用RS算法來(lái)進(jìn)行計(jì)算,篇幅所限,這里就不具體講解了,最終的結(jié)果如下:

00010000 00100000 00001100 01010110 01100001

10000000 11101100 00010001 11101100 00010001

11101100 00010001 11101100 00010001 11101100

00010001->

00010000 00100000 00001100 01010110 01100001

10000000 11101100 00010001 11101100 00010001

11101100 00010001 11101100 00010001 11101100

00010001 10100101 00100100 11010100 11000001

11101101 00110110 11000111 10000111 00101100

01010101

第四步:將最終的數(shù)據(jù)編碼按順序放入二維碼中

 image                                image

                      圖9                                                                       圖10

從左下角開(kāi)始,1為黑色,0為白色,按順序依次填入二維碼中

第五步:添加格式信息和進(jìn)行掩碼運(yùn)算

得到的圖像還需要對(duì)數(shù)據(jù)區(qū)進(jìn)行掩碼運(yùn)算,掩碼運(yùn)算的目的是讓圖像中黑色和白色方塊分布的更加均勻一些,便于解碼

有以下幾種掩碼運(yùn)算,相應(yīng)的標(biāo)識(shí)和變換方式見(jiàn)圖11,二維碼的左上角的坐標(biāo)為(0,0)

         image

                                               圖11

 

    image

                              圖12  坐標(biāo)系和掩碼運(yùn)算的圖案

這里我們選擇標(biāo)識(shí)為011的掩碼

格式信息的組成為                       :糾錯(cuò)標(biāo)識(shí)+掩碼標(biāo)識(shí)+BCH糾錯(cuò)碼

所以前面的糾錯(cuò)標(biāo)識(shí)+掩碼標(biāo)識(shí)為:00011

BCH糾錯(cuò)碼計(jì)算為:

image

得到糾錯(cuò)碼為                             :011 0101 1001

格式信息為                                :00011 1101011001

為了避免選擇標(biāo)識(shí)00的糾錯(cuò)類(lèi)別和標(biāo)識(shí)000的掩碼運(yùn)算,照成格式信息為全0的數(shù)字,所得的格式信息還要與101010000010010做異或運(yùn)算

000111101011001

101010000010010   XOR

101101101001011

最終的格式信息為                      :101101101001011

將格式信息放入二維碼中       

        image

                          圖13

對(duì)加格式信息后的二維碼 進(jìn)行掩碼運(yùn)算

得到的最終二維碼,儲(chǔ)存的數(shù)據(jù)信息是01234567

       image

                      圖14

整個(gè)流程見(jiàn)圖15

   
                                      圖15


四、二維碼的安全知識(shí)

雖然二維碼本身承擔(dān)的只是一些文本數(shù)據(jù),但仍會(huì)導(dǎo)致一些安全問(wèn)題

1、攻擊者將一些惡意網(wǎng)站或者一些惡意代碼制作成二維碼,用戶(hù)掃描后,會(huì)自動(dòng)下載一些惡意軟件,或跳轉(zhuǎn)到一些虛假網(wǎng)站給使用者造成危害,

2、二維碼內(nèi)如果包含一些可執(zhí)行的腳本,便可能導(dǎo)致xss攻擊     如 http://www./bugs/wooyun-2012-09145

3、如果將一些敏感信息不加密而直接儲(chǔ)存在二維碼中,便會(huì)存在信息泄露的可能,比如11年火車(chē)票上的二維碼就存在泄露使用者的身份證號(hào)碼的問(wèn)題。

五、總結(jié)

雖然我們?cè)谑褂枚S碼的時(shí)候只需要用手機(jī)一掃即可,但二維碼的編碼和解碼卻包含了很多的步驟和很多的知識(shí),此外二維碼本身僅僅是數(shù)據(jù)的承載體,我們?cè)谑褂脮r(shí)要針對(duì)一些敏感信息進(jìn)行加密處理,防范潛在的攻擊方式

 

參考文獻(xiàn)

二維碼的生成細(xì)節(jié)和原理  http:///articles/10590.html#jtss-tsina

QR二維碼的攻擊與防御   http://drops./tips/160

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多