精华内容
下载资源
问答
  • 一、二维码的分类 二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码有着更高的数据...

    一、二维码的分类

    二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码有着更高的数据存储容量。

    从形成方式上,二维码可以分为两类,

    1、堆叠式二维码:在一维条形码的基础上,将多个条形码堆积在一起进行编码,常见的编码标准有PDF417等

    image

                              图1 PDF417码示例

    2、矩阵式二维码:在一个矩阵空间中通过黑色和白色的方块进行信息的表示,黑色的方块表示1,白色的方块表示0,相应的组合表示了一系列的信息,常见的编码标准有QR 码,汉信码等

     image                   image

           图2 QR码示例                                  图3 汉信码示例

    PDF417由美国研发,在美国地区使用广泛

    汉信码由中国自主研发,目前已在政府相关领域得到初步的使用。

    QR码由日本研发,目前很多的应用都是用QR码进行编码,译码

    目前使用最广的是QR码,所以接下来的内容会对QR码进行讲解,下文中提到的二维码,指的就是QR码

    QR码分为40个版本,版本1由21x21个方块组成,每个版本增加4个方块,版本40由177x177个方块组成。每增加一个版本,QR码可储存的信息数量也随之增多。

    版本1的二维码最多可以储存25个字符或41个数字,而版本40的二维码最多可以储存4296个字符或7089个数字

    二、二维码的结构

    一个二维码可以分为两个部分,功能图形和编码区域

    image

                                             图4

    功能图形起到定位的作用

    位置探测图形:由三个黑白相间的大正方形嵌套组成,分别位于二维码左上角、右上角、左下角,目的是为了确定二维码的大小和位置。

    定位图形       :由两条黑白相间的直线组成,便于确定二维码的角度,纠正扭曲。

    校正图形       :仅在版本2以上存在,由三个黑白相间的小正方形嵌套组成,便于确定中心,纠正扭曲。

    数据区记录了具体的数据信息,纠错信息与版本信息。

    数据和纠错码:记录了数据信息和相应的纠错码,纠错码的存在使得当二维码的数据出现允许范围内的错误时,也可以正确解码。

    版本信息       :仅在版本7以上存在,记录具体的版本信息。

    格式信息       :记录使用的掩码和纠错等级。

    此外二维码的外围还留有一圈空白区,主要是为了便于识别而存在。

    三、数据编码与实例

    针对不同的数据,QR码设计了不同的数据编码编码方式,我们可以根据数据的种类选择合适的编码方式进行编码。

    数字编码(Numeric)        :可编码0-9,10个数字,如果需要编码的数字的个数不是3的倍数,最后剩下的1或2位数会被转成4或7bits,其它的每3位数字会根据不同版本被编成 10,12,14bits

    字符编码(Alphanumeric) :可编码0-9,大写的A-Z,以及9个其他的字符(space $ % * + – . / :);

    8位字节模式(8-bit Byte)     :可编码JIS X 0201的8位Latin/Kana字符集

    除此之外,QR还提供了其他的编码方式,每一个编码方式都有其独有的id进行标识,这些标识会记录在数据区的前端,使得解码器可以根据二维码使用的编码方式对数据进行解码

          image

                                      图5   一些编码方式及其标识

    纠错码

    二维码存在4个级别的纠错等级,每个纠错级别可修正的错误与标识见图6,纠错级别越高,可以修正的错误就越多,需要的纠错码的数量也变多,相应的可储存的数据就会减少,版本1的二维码在L级别下可储存25个字符,在H级别下只能储存10个字符。

              image

                                 图6

    下面给一个01234567在版本1下用数字编码(Numeric),选择的纠错级别是M的示例

    第一步,将定位图案放到二维码中

          image

                             图7

    第二步:进行数据编码

    根据图8,版本1下,采用Numeric Mode编码时,每三个数字需要10个bits进行标示

    image

                                                图8

    012 ->0000001100

    345 ->0101011001

    67 ->1000011

    组合起来为

    0000001100 0101011001 1000011

     

    在数据的头尾加上一些标准要求的信息

    数字个数 (8) = 0000001000

    编码格式      =0001

    终止符         =0000

    组合起来为

    0000001100 0101011001 1000011->

    0001 0000001000 0000001100 0101011001 1000011 0000

     

    按8bit一组重新排列,末尾不足的补零

    0001 0000001000 0000001100 0101011001 1000011 0000->

    00010000 00100000 00001100 01010110 01100001 10000000

     

    不足最大bit的添加补齐码(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

    第三步:添加纠错码

    纠错码根据数据利用RS算法来进行计算,篇幅所限,这里就不具体讲解了,最终的结果如下:

    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

    第四步:将最终的数据编码按顺序放入二维码中

     image                                image

                          图9                                                                       图10

    从左下角开始,1为黑色,0为白色,按顺序依次填入二维码中

    第五步:添加格式信息和进行掩码运算

    得到的图像还需要对数据区进行掩码运算,掩码运算的目的是让图像中黑色和白色方块分布的更加均匀一些,便于解码

    有以下几种掩码运算,相应的标识和变换方式见图11,二维码的左上角的坐标为(0,0)

             image

                                                   图11

     

        image

                                  图12  坐标系和掩码运算的图案

    这里我们选择标识为011的掩码

    格式信息的组成为                       :纠错标识+掩码标识+BCH纠错码

    所以前面的纠错标识+掩码标识为:00011

    BCH纠错码计算为:

    image

    得到纠错码为                             :011 0101 1001

    格式信息为                                :00011 1101011001

    为了避免选择标识00的纠错类别和标识000的掩码运算,照成格式信息为全0的数字,所得的格式信息还要与101010000010010做异或运算

    000111101011001

    101010000010010   XOR

    101101101001011

    最终的格式信息为                      :101101101001011

    将格式信息放入二维码中       

            image

                              图13

    对加格式信息后的二维码 进行掩码运算

    得到的最终二维码,储存的数据信息是01234567

           image

                          图14

    整个流程见图15

        image 
                                          图15

     

    四、二维码的安全知识

    虽然二维码本身承担的只是一些文本数据,但仍会导致一些安全问题

    1、攻击者将一些恶意网站或者一些恶意代码制作成二维码,用户扫描后,会自动下载一些恶意软件,或跳转到一些虚假网站给使用者造成危害,

    2、二维码内如果包含一些可执行的脚本,便可能导致xss攻击     如 http://www.wooyun.org/bugs/wooyun-2012-09145

    3、如果将一些敏感信息不加密而直接储存在二维码中,便会存在信息泄露的可能,比如11年火车票上的二维码就存在泄露使用者的身份证号码的问题。

    五、总结

    虽然我们在使用二维码的时候只需要用手机一扫即可,但二维码的编码和解码却包含了很多的步骤和很多的知识,此外二维码本身仅仅是数据的承载体,我们在使用时要针对一些敏感信息进行加密处理,防范潜在的攻击方式

     

    参考文献

    二维码的生成细节和原理  http://coolshell.cn/articles/10590.html#jtss-tsina

    QR二维码的攻击与防御   http://drops.wooyun.org/tips/160

    转载于:https://www.cnblogs.com/Rozdy/p/4484008.html

    展开全文
  • 二维码知识

    2018-07-16 13:39:56
    二维码知识转载自https://ihomura.cn/2018/07/16/WriteUp-QCTF-X-man-A-face/

    二维码知识

    转载自https://ihomura.cn/2018/07/16/WriteUp-QCTF-X-man-A-face/


    展开全文
  • Android二维码知识汇总

    2017-03-13 18:01:16
    【eoeAndroid社区】二维码现在对大家很是重要,所以特意的整理了有关Android 二维码知识帖,有实例教程、源码和问答贴,大家有时间可以到这里看一下,多多的学习下。希望能够给大家带来一些帮助。也希望各位同学也...

    【eoeAndroid社区】二维码现在对大家很是重要,所以特意的整理了有关Android 二维码的知识帖,有实例教程、源码和问答贴,大家有时间可以到这里看一下,多多的学习下。希望能够给大家带来一些帮助。也希望各位同学也能够到社区整理些这种汇总贴,更能方便大家一起学习。帖子我们也会随时的更新,会给大家带来更多的知识。
    ====================Android 二维码实例教程=================

    android 二维码原理简介
    http://www.eoeandroid.com/thread-238012-1-1.html
    条码扫描二维码扫描—ZXing android 改进版本
    http://www.eoeandroid.com/thread-225832-1-1.html
    在Android上使用ZXing识别条码/二维码
    http://www.eoeandroid.com/thread-159696-1-1.html
    关于如何区分Zxing扫描扫描到的码是一维码还是二维码
    http://www.eoeandroid.com/thread-239739-1-1.html
    (转载)用com.google.zxing生成、解析二维码
    http://www.eoeandroid.com/thread-201161-1-1.html
    条码扫描二维码扫描——ZXing android 源码简化 (附:支持中文)
    http://www.eoeandroid.com/thread-200965-1-1.html
    在Android上使用ZXing识别条码/二维码(简单的实现)
    http://www.eoeandroid.com/thread-61977-1-1.html

    =======================================================
    ====================Android 二维码源码=================

    二维码Demo
    http://www.eoeandroid.com/thread-193771-1-1.html
    Android查看二维码源码
    http://www.eoeandroid.com/thread-226792-1-1.html
    仿微信二维码名片
    http://www.eoeandroid.com/thread-236176-1-1.html
    关于Zxing二维码扫描开灯的问题
    http://www.eoeandroid.com/thread-235785-1-1.html
    Android带闪光灯的二维码代码
    http://www.eoeandroid.com/thread-241034-1-1.html
    Android 二维码条形码生成与扫描
    http://www.eoeandroid.com/thread-231508-1-1.html
    Android二维码识别源码,可有多种实现方式。
    http://www.eoeandroid.com/thread-192197-1-1.html
    最简易的条形码二维码扫描,再附上完整版
    http://www.eoeandroid.com/thread-175707-1-1.html
    android直接从图片中对二维码编码解码
    http://www.eoeandroid.com/thread-160718-1-1.html
    wee作品 - XL二维码 【界面设计得很蛋疼】更新1.3版本
    http://www.eoeandroid.com/thread-207163-1-1.html

    ===================================================== ====================Android 二维码问答=================

    关于二维码
    http://www.eoeandroid.com/thread-180946-1-1.html
    实现扫描二维码查询商品价格的功能
    http://www.eoeandroid.com/thread-226097-1-1.html
    关于zxing二维码扫描结果问题
    http://www.eoeandroid.com/thread-201762-1-1.html
    关于个性化二维码的实现
    http://www.eoeandroid.com/thread-181148-1-1.html
    请问如何区分一维码和二维码
    http://www.eoeandroid.com/thread-209362-1-1.html
    android 二维码 实现手动功能
    http://www.eoeandroid.com/thread-245605-1-1.html
    ZXing识别二维码图片
    http://www.eoeandroid.com/thread-178959-1-1.html
    关于Zxing二维码扫描OutOfMemoryError: bitmap size exceeds VM
    http://www.eoeandroid.com/thread-240816-1-1.html
    关于二维码的求助!
    http://www.eoeandroid.com/thread-204963-1-1.html
    关于二维码横屏的处理,老调重弹,但是也有新手找不着北吧…
    http://www.eoeandroid.com/thread-227010-1-1.html
    怎么让微信的扫一扫扫描二维码后安装apk?
    http://www.eoeandroid.com/thread-210989-1-1.html
    微信扫描丁丁优惠二维码打开丁丁优惠客户端是如何实现的
    http://www.eoeandroid.com/thread-205224-1-1.html

    展开全文
  • 二维码知识原理汇总

    2014-04-30 15:14:32
    【eoeAndroid社区】二维码现在对大家很是重要,所以特意的整理了有关Android 二维码知识帖,有实例教程、源码和问答贴,大家有时间可以到这里看一下,多多的学习下。希望能够给大家带来一些帮助。也希望各位同学也...

    转载:http://blog.csdn.net/dyllove98/article/details/8815889


    【eoeAndroid社区】二维码现在对大家很是重要,所以特意的整理了有关Android 二维码的知识帖,有实例教程、源码和问答贴,大家有时间可以到这里看一下,多多的学习下。希望能够给大家带来一些帮助。也希望各位同学也能够到社区整理些这种汇总贴,更能方便大家一起学习。帖子我们也会随时的更新,会给大家带来更多的知识。
    ====================Android 二维码实例教程=================

    android 二维码原理简介
    条码扫描二维码扫描—ZXing android 改进版本
    在Android上使用ZXing识别条码/二维码
    关于如何区分Zxing扫描扫描到的码是一维码还是二维码
    (转载)用com.google.zxing生成、解析二维码
    条码扫描二维码扫描——ZXing android 源码简化 (附:支持中文)
    在Android上使用ZXing识别条码/二维码(简单的实现)
     

    =======================================================
    ====================Android 二维码源码=================

    二维码Demo
    Android查看二维码源码
    仿微信二维码名片
    关于Zxing二维码扫描开灯的问题
    Android带闪光灯的二维码代码
    Android 二维码条形码生成与扫描
    Android二维码识别源码,可有多种实现方式。
    最简易的条形码二维码扫描,再附上完整版
    android直接从图片中对二维码编码解码
    wee作品 - XL二维码 【界面设计得很蛋疼】更新1.3版本
     

    =========================================================================Android 二维码问答=================

    关于二维码
    实现扫描二维码查询商品价格的功能
    关于zxing二维码扫描结果问题
    关于个性化二维码的实现
    请问如何区分一维码和二维码
    android 二维码 实现手动功能
    ZXing识别二维码图片
    关于Zxing二维码扫描OutOfMemoryError: bitmap size exceeds VM
    关于二维码的求助!
    关于二维码横屏的处理,老调重弹,但是也有新手找不着北吧...
    怎么让微信的扫一扫扫描二维码后安装apk?
    微信扫描丁丁优惠二维码打开丁丁优惠客户端是如何实现的
    展开全文
  • eoeAndroid社区】二维码现在对大家很是重要,所以特意的整理了有关Android 二维码知识帖,有实例教程、源码和问答贴,大家有时间可以到这里看一下,多多的学习下。希望能够给大家带来一些帮助。也希望各位同学也...
  • 二维码介绍

    2017-09-22 09:51:52
    一、二维码的分类 二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码有着更高的数据...
  • Android二维码知识汇总

    2014-06-13 13:59:59
    http://blog.csdn.net/dyllove98/article/details/8815889
  • 做P2C必须了解的二维码知识

    千次阅读 2014-02-23 11:11:19
    P2C(Product To Customer)是广东井田云科技有限公司在移动互联网时代中提出的一个非常好的理念,而二维码是其中一个非常重要的环节,所以你必须非常了解二维码才能把P2C做好,下面这些关于二维码的小知识,你知道...
  • 二维码基础知识

    千次阅读 2018-02-26 09:50:08
    二维码发展历史 20世纪20年代 约翰.科芒德实现邮政单据自动分捡方法。 1949年美国乔.伍德兰德、伯尼.西尔沃发明了第一个条形码专利。 1959年 吉拉德.费伊赛尔申请了用条形码表示数字的专利。 60年代 西尔沃尼亚...
  • 码的组成读码的知识基础,码的类别区分,码密度计算
  • 二维码相关知识

    2017-04-26 22:23:00
    3. 制作带二维码图片时应该生成高纠错等级的图片,嵌入的图片不能超过二维码图案的30% 毕业设计要求完成: 能够方便地根据输入信息自动生成二维码图片。 可以根据需要自由设置二维码的前景色、背景色; 可以...
  • 大部分在使用二维码的时候都会选择使用第三方库,笔者个人感觉使用苹果是非常人性化的,本身提供了有关二维码的一些处理方法,并且个人感觉使用原生态的扫描效率更好,接下来就初步学习一下有关二维码扫描的知识 ...
  • 二维码扫描知识

    2016-12-22 14:33:00
    二维码知识点总结 01-二维码简介 1.概念 二维码:用某种特定的集合图形按照一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号的信息 生成二维码:根据给定的信息,将其按照二维码的编码方式生成一张图片 ...
  • 【eoeAndroid社区】二维码现在对大家很是重要,所以特意的整理了有关Android 二维码知识帖,有实例教程、源码和问答贴,大家有时间可以到这里看一下,多多的学习下。希望能够给大家带来一些帮助。也希望各位同学也...
  • 二维码相关知识

    2019-10-06 14:12:41
    1 关于如何在代码里区分条码扫描扫描到是是一维码还二维码 关键的三个类,CaptureActivity、DecodeThread、DecodeFormatManager 1.首先让我们来看下Zxing的源码,里面有一个DecodeFormatManager编码管理类: 该来...
  • 二维码详解

    千次阅读 2018-08-02 16:52:53
    二维码知识介绍 一、二维码的分类 二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码...
  • 我发现,还是有很多人对带参数二维码带有疑惑,所以将相关讨论集中一下,以便大家能够有一个清晰的理解:  首先,小程序的非带参二维码请在小程序公众后台生成;带参数二维码则请继续看以下内容: 官方文档地址:...
  • 二维码

    2018-01-17 11:09:42
    最近自己在写一个问卷调查的App,想要实现通过二维码的方式来分享一个问卷的功能,需要用到二维码生成和识别的相关知识,搜索学习了一下,做一个总结。 二维码 二维码又称QR Code,QR全称Quick Response,是一...
  • 二维码技术知识点搜集

    千次阅读 2016-02-02 16:35:05
    二维码技术 二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、...
  • 本文简单地介绍了十几种常见的二维码,并展示如何使用zxing生成各种二维码 本文将详细介绍(相对来说)使用zxing对QrCode的生成 二维码介绍来自百度百科和某些文献,正所谓,冤有头。。。 代码的实现在代码的第二...
  • 知识:浅谈二维码的生成和识别原理

    万次阅读 多人点赞 2019-12-26 15:14:15
    静态二维码 二进制生成图形码 二维码的定位 前言 不知不觉中,我们的生活到处充满了二维码。登录账户需要二维码;加好友需要二维码;共享单车需要二维码;商品包装上也有二维码;甚至连楼下卖水果的阿姨手里都...
  • 二维条码/二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,132
精华内容 26,052
关键字:

二维码知识介绍