CN106815544B - 一种基于二维码的信息隐藏方法 - Google Patents
一种基于二维码的信息隐藏方法 Download PDFInfo
- Publication number
- CN106815544B CN106815544B CN201710030679.2A CN201710030679A CN106815544B CN 106815544 B CN106815544 B CN 106815544B CN 201710030679 A CN201710030679 A CN 201710030679A CN 106815544 B CN106815544 B CN 106815544B
- Authority
- CN
- China
- Prior art keywords
- information
- binary
- code
- hiding
- string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1473—Methods for optical code recognition the method including quality enhancement steps error correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/06075—Constructional details the marking containing means for error correction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明涉及一种基于二维码的信息隐藏方法,方法基于QR码对编码的原始数据的纠错性能,将需要隐藏的信息以基于比特位并提供BCH纠错的形式嵌入到编码中,然后再采用与隐藏信息嵌入相对应的提取方法提取隐藏信息,从而达到传递隐藏信息的目的。本发明是为了提供一种将信息隐藏与二维码相结合,把二维码作为信息隐藏的载体,利用编码机制的特点直接将隐藏信息写入,通过不同的解码器的读取,普通解码器只能读取出二维码中的普通信息,而无法读取也不会想到在二维码之中还存有隐藏信息,只有利用根据本发明提出的特殊算法设计的解码器才能解读其中的隐藏信息的方法。
Description
技术领域
本发明属于信息领域,尤其涉及一种基于二维码的信息隐藏方法。
背景技术
一维条码自出现以来,得到了人们的普遍关注,发展速度十分迅速。它的使用,极大地提高了数据采集和信息处理的速度,提高了工作效率,并为管理的科学化和现代化做出了很大贡献。由于受信息容量的限制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述。故一维条码的使用,不得不依赖数据库的存在。在没有数据库和不便联网的地方,一维条码的使用受到了较大的限制,有时甚至变得毫无意义。另外,要用一维条码表示汉字的场合,显得十分不方便,且效率很低。现代高新技术的发展,迫切要求用条码在有限的几何空间内表示更多的信息,从而满足千变万化的信息表示的需要。二维条码正是为了解一维条码无法解决的问题而产生的。
二维条码是一种特殊的条码技术,简称二维码。与一维条码技术相比,它采用矩形、点、六边形等几何图案来表示信息,编码时使用若干个与二进制相对应的几何形体来表示文字数值信息,解码时则通过图像输入或光电扫描设备自动识读信息。除信息表示方法不同外,二维码仍具备普通条码的一些共性,如每种码制有特定的字符集;每个字符占有一定的宽度;具有校验功能等。因为二维码具备快速响应和快速数据访问的能力,所以随着智能手机的逐渐普及,二维码编解码功能软件已经几乎成为了智能手机的标配软件。目前常用或知名的二维条码编码机制有Data Matrix,Maxi Code,QRCode,汉信码等,其中QR码是目前应用最广泛的条码之一,该种编码最多可以表示7089个字符,而传统一维条码最多则只能表示20个字符。
借助于智能移动终端设备的普及,二维条码的应用场景越来越多,利用二维条码在移动终端用户之间快速交互信息的应用软件随处可见,渐渐成为一种时尚。快速响应码(QR码)近年来由于具有大容量的数据,较强抗破坏性,快速解码等优势,在日常生活中的广泛应用。人们可以使用它来传输秘密信息,而无需检查。
发明内容
本发明基于QR码对编码的原始数据的纠错性能,将需要隐藏的信息以基于比特位并提供BCH纠错的形式嵌入到编码中,然后再采用与隐藏信息嵌入相对应的提取方法提取隐藏信息,从而达到传递隐藏信息的目的。也就是说,一般的扫码器可以读取加密的QR码的原始内容,只有授权的系统可以提取隐藏在QR码的信息。
本发明的技术方案基于第三方开源条码生成软件zxing完成,具体涉及:
一种基于二维码的信息隐藏方法,其特征在于,包括:
隐藏信息的嵌入步骤:选定作为信息隐藏载体的二维条码的版本和纠错码的等级,然后将隐藏信息转换为二进制字符串,并基于BCH编码原理得到包含纠错码的隐藏信息的二进制字符串,最后将普通信息按照QRCode编码规则编码成构造二进制矩阵,并基于包含纠错码的隐藏信息的二进制字符串得到掩码过后的二进制矩阵,并将该矩阵根据“0”、“1”进行黑白着色并转换为二维码图片;
隐藏信息的提取步骤:用户使用客户端读物二维码后,进行原始二进制矩阵的转换后,进行RS纠错并得到正确字符串,最终根据得到的正确字符串转换为明文形式,获得二维码携带的隐藏的信息。
在上述的一种基于二维码的信息隐藏方法,所述隐藏信息的嵌入步骤具体包括:
步骤1,根据二维条码中的普通信息的长度与类型以及计算所需嵌入的隐藏信息增加BCH纠错码后的二进制长度,选定出作为信息隐藏载体的二维条码的版本和纠错码的等级。
步骤2,将隐藏信息转换为二进制字符串,根据隐藏信息需要纠错的位数对该字符串进行分组,每组含k位二进制信息,并利用BCH编码原理计算得出每组二进制信息的n位BCH纠错码。若二进制字符串在分组后存在某组二进制信息不足k位时,应先在二进制字符串添“0”补足,直到各个分组都包含k位二进制位。在得到各组的BCH纠错码后将每组的BCH纠错码分别插入至相应有效信息后,形成包含纠错码的隐藏信息的二进制字符串,即为所需嵌入二维码编码中的信息。
步骤3,在将普通信息按照QRCode编码规则编码成构造二进制矩阵时,根据步骤2最后得出的字符串的长度在不破坏QRCode基本结构的情况下选中矩阵的数据和纠错码字区域的一块矩形区域,按照构造规则将字符串按位依次放入该区域中替换原本对普通信息编码后的二进制信息,当二进制信息长度小于矩形区域可放置长度时选择在末尾添0补足。在二进制矩阵编码构造完成后,再通过掩码对整个数据和纠错码区域进行掩膜,使得二维码图形中的有颜色且白色除外的区域与白色区域能够比率最优的分布。
步骤4,将掩码过后的二进制矩阵根据“0”、“1”进行着色并转换为图片。
在上述的一种基于二维码的信息隐藏方法,所述隐藏信息的提取步骤具体包括:
步骤1,用户使用客户端对准作为隐藏信息载体的二维码进行扫描,在对二维码图片进行解析后再解掩码生成所携带信息的原始二进制矩阵后,根据隐藏信息嵌入时选中的区域,将该区域的二进制信息按嵌入顺序依次提取出来。然后一方面将提取出来的信息根据BCH分组去除由于长度不足而在放入矩阵时在隐藏信息末尾手动添加的二进制位“0”,得到正确的包含纠错码的隐藏信息的二进制字符串;另一方面,对整个二维码的二进制矩阵利用二维码本身携带的纠错码字对二进制矩阵进行RS纠错,还原二维码本身携带的普通信息,通过解析得到二维码携带的普通信息。
步骤2,对步骤1最后得到的正确字符串进行分组,每组含k+n位,其中k,n对应隐藏信息嵌入步骤2的k,n值,并对每组二进制串进行BCH解码,得到每组的有效二进制信息;
步骤3,将步骤2中最后得到的二进制字符串转换为明文形式,即为二维码携带的隐藏的信息。
隐藏信息的提取根据用户是否使用实施方案中的解码器分为两种情况:
若用户使用本实施方案中的提取方法,用户使用特定客户端对准作为藏信息载体的二维条码进行扫描,客户端中的解码器随即利用上述提取方法得到隐藏的信息。
若用户没有使用本实施方案中提取方法,而是使用普通带有扫码功能的解码器对所生成的带有隐藏信息的二维条码图像进行扫描,则只能读取到二维条码中所存储的普通信息,而获取不到所隐藏其中的秘密信息。
因此,本发明具有如下优点:将信息隐藏与二维码相结合,把二维码作为信息隐藏的载体,利用编码机制的特点直接将隐藏信息写入,通过不同的解码器的读取,普通解码器只能读取出二维码中的普通信息,而无法读取也不会想到在二维码之中还存有隐藏信息,只有利用根据本发明提出的特殊算法设计的解码器才能解读其中的隐藏信息的方法。
附图说明
图1是本发明的隐藏信息嵌入流程图。
图2是本发明的隐藏信息提取流程图。
图3是采用本发明的方法生成的二维码示意图。
具体实施方式
本发明基于QR码对编码的原始数据的纠错性能,将需要隐藏的信息以基于比特位并提供纠错的形式嵌入到编码中,然后再采用特定的隐藏信息的提取方法进行提取,从而达到传递隐藏信息的目的。
本发明提供的方法能够用计算机软件技术实现流程。
一、本发明主要包含两个方面:隐藏信息的嵌入与隐藏信息的提取。
隐藏信息的嵌入包含以下步骤:
步骤1,根据二维条码中的普通信息的长度与类型以及计算所需嵌入的隐藏信息增加BCH纠错码后的二进制长度,选定出作为信息隐藏载体的二维条码的版本和纠错码的等级。
步骤2,将隐藏信息转换为二进制字符串,根据隐藏信息需要纠错的位数对该字符串进行分组,每组含k位二进制信息,并利用BCH编码原理计算得出每组二进制信息的n位BCH纠错码。若二进制字符串在分组后存在某组二进制信息不足k位时,应先在二进制字符串添“0”补足,直到各个分组都包含k位二进制位。在得到各组的BCH纠错码后将每组的BCH纠错码分别插入至相应有效信息后,形成包含纠错码的隐藏信息的二进制字符串,即为所需嵌入二维码编码中的信息。
步骤3,在将普通信息按照QRCode编码规则编码成构造二进制矩阵时,根据步骤2最后得出的字符串的长度在不破坏QRCode基本结构的情况下选中矩阵的数据和纠错码字区域的一块矩形区域,按照构造规则将字符串按位依次放入该区域中替换原本对普通信息编码后的二进制信息,当二进制信息长度小于矩形区域可放置长度时选择在末尾添0补足。在二进制矩阵编码构造完成后,再通过掩码对整个数据和纠错码区域进行掩膜,使得二维码图形中的有颜色(白色除外)区域与白色区域能够比率最优的分布。
步骤4,将掩码过后的二进制矩阵根据“0”、“1”进行着色并转换为图片。
隐藏信息的提取包含以下步骤:
步骤1,用户使用客户端对准作为隐藏信息载体的二维码进行扫描,在对二维码图片进行解析后再解掩码生成所携带信息的原始二进制矩阵后,根据隐藏信息嵌入时选中的区域,将该区域的二进制信息按嵌入顺序依次提取出来。然后一方面将提取出来的信息根据BCH分组去除由于长度不足而在放入矩阵时在隐藏信息末尾手动添加的二进制位“0”,得到正确的包含纠错码的隐藏信息的二进制字符串;另一方面,对整个二维码的二进制矩阵利用二维码本身携带的纠错码字对二进制矩阵进行RS纠错,还原二维码本身携带的普通信息,通过解析得到二维码携带的普通信息。
步骤2,对步骤1最后得到的正确字符串进行分组,每组含(k+n)(其中k,n对应隐藏信息嵌入步骤2的k,n值)位,并对每组二进制串进行BCH解码,得到每组的有效二进制信息
步骤3,将步骤2中最后得到的二进制字符串转换为明文形式,即为二维码携带的隐藏的信息。
隐藏信息的提取根据用户是否使用实施方案中的解码器分为两种情况:
若用户使用本实施方案中的提取方法,用户使用特定客户端对准作为藏信息载体的二维条码进行扫描,客户端中的解码器随即利用上述提取方法得到隐藏的信息。
若用户没有使用本实施方案中提取方法,而是使用普通带有扫码功能的解码器对所生成的带有隐藏信息的二维条码图像进行扫描,则只能读取到二维条码中所存储的普通信息,而获取不到所隐藏其中的秘密信息。
二、下面结合具体案例进行说明。
对于隐藏信息的嵌入参见图1,实施例以普通信息为http://www.whu.edu.cn,隐藏信息为“123044162062”,对于隐藏信息可纠4位错为例对本发明的流程进行一个具体的阐述,如下:
定义Version为二维码的版本,t为BCH纠错位数,s为隐藏信息转换的二进制字符串,t为隐藏信息增加BCH纠错码后的二进制字符串
步骤1,根据二维条码中的普通信息的长度与类型以及计算所需嵌入的隐藏信息增加BCH纠错码后的二进制长度,选定出作为信息隐藏载体的二维条码的版本和纠错码的等级。
实施例具体的实施过程说明如下:
根据一般情况下二维码携带普通信息的长度,实施例选择二维码的版本version=3,二维码矩阵是29*29,总共能容纳70个码字,对于四种纠错等级L、M、Q、H的纠错容量分别为:7、13、18、22个码字,将隐藏信息转换为二进制字符串为:s=1110010100110000000001110101000001110,长度为37位,由于总共需纠四位错,选择将s分为两组,每组进行BCH编码,即t=2,根据BCH编码原理选取本原BCH(31,21)码,即21位有效信息的字符串生成10位BCH纠错码。因此最后需嵌入的包含BCH纠错码的二进制信息应有62位,考虑到各种纠错等级的纠错容量,我们选择纠错等级为Q。
步骤2,将隐藏信息转换为二进制字符串,根据隐藏信息需要纠错的位数对该字符串进行分组,每组含k位二进制信息,并利用BCH编码原理计算得出每组二进制信息的n位BCH纠错码。若二进制字符串在分组后存在某组二进制信息不足k位时,应先在二进制字符串添“0”补足,直到各个分组都包含k位二进制位。在得到各组的BCH纠错码后将每组的BCH纠错码分别插入至相应有效信息后,形成包含纠错码的隐藏信息的二进制字符串,即为所需嵌入二维码编码中的信息。
实施例具体的实施过程说明如下:
首先将s分为两组,每组长度21位,分别为:000001110010100110000、000001110101000001110。
然后分别计算两组二进制信息的BCH纠错码。
BCH码的定义为:若循环码的生成多项式具有如下形式:
g(x)=LCM[m1(x),m3(x),...,m2t-1(x)]其中LCM表示最小公倍式,t为纠错个数,mi(x)为素多项式,则由此生成的循环码称为BCH码。
BCH码部分不可约多项式表如下:
2阶 | 1 | 7 | ||||
3阶 | 1 | 13 | ||||
4阶 | 1 | 23 | 3 | 37 | 5 | 07 |
5阶 | 1 | 45 | 3 | 75 | 5 | 67 |
在本实施例中由步骤1的实施例可得BCH纠错码采用BCH(31,21)码,t=2,则n=31=25–1,通过查询上述不可约多项式表可得:
m1(x)=(45)8=100101=x5+x2+1;
m3(x)=(75)8=111101=x5+x4+x3+x2+1;
所以g(x)=LCM[m1(x),m3(x)]=x10+x9+x8+x6+x5+x3+1=11101101001,将每组21位二进制信息对生成多项式进行模2运算得到两组二进制信息的BCH纠错码分别为:1000101110、0011110100。
最后将纠错码插入相应的二进制有效信息后面得到包含BCH纠错码的隐藏信息的二进制字符串。本例中将上述纠错码插入字符串s中得到字符串t,可得t的结果为:00000111001010011000010001011100000011101010000011100011110100。
步骤3,在将普通信息按照QRCode编码规则编码成构造二进制矩阵时,根据步骤2最后得出的字符串的长度在不破坏QRCode基本结构的情况下选中矩阵的数据和纠错码字区域的一块矩形区域,按照构造规则将字符串按位依次放入该区域中替换原本对普通信息编码后的二进制信息,当二进制信息长度小于矩形区域可放置长度时选择在末尾添0补足。在二进制矩阵编码构造完成后,再通过掩码对整个数据和纠错码区域进行掩膜,使得二维码图形中的有颜色(白色除外)区域与白色区域能够比率最优的分布。
实施例的具体实施过程如下:
由步骤2的实施过程可知,t的长度为62位,由于在二维码矩阵编码过程中,二进制位是两位一起放置,因此为了方便起见,选中的矩形区域的宽度应为偶数,从而在本例中在QRCode编码矩阵中的数据和纠错码区域选中的矩形区域应为7*10区域,由于区域可放置总长度位63位,t的长度位62位,因此在末尾需添八位0进行补足。为了方便起见,我们将该7*10矩形区域放于该二维码正中间,该位置正好处于矩阵的纠错码和数据区域,不会破坏QRCode的基本结构。
当字符串t不插入二维码二进制矩阵时,二维码矩阵中间7*10区域的编码为:
当插入字符串t后,二维码矩阵中间7*10区域的编码变为:
编码完成后对整个二进制矩阵进行掩码,使得二进制矩阵0、1分布相对均匀,由于整个二进制矩阵过大,不方便直接展示,下面是对中间7*10矩形区域进行掩码的结果:
步骤4,将掩码过后的二进制矩阵根据“0”、“1”进行着色并转换为图片。
实施例的具体实施过程如下:
对步骤3实施例最终生成的二进制矩阵进行着色,通常而言,二维码显示为黑白两色,因此在本例中,选择将二进制位为“1”着色为黑色,二进制位为“0”着色为白色,最终生成的二维码图片如图3。
对于隐藏信息的提取,参见图2,实施例以上述例子中生成的包含隐藏信息的二维码为例对本方案的流程做一个具体的阐述:
定义:T为提取隐藏信息的二进制字符串,S为提取出来包含纠错码的隐藏信息的二进制字符串,M为隐藏的信息
步骤1,用户使用客户端对准作为隐藏信息载体的二维码进行扫描,在对二维码图片进行解析后再解掩码生成所携带信息的原始二进制矩阵后,根据隐藏信息嵌入时选中的区域,将该区域的二进制信息按嵌入顺序依次提取出来。然后一方面将提取出来的信息根据BCH分组去除由于长度不足而在放入矩阵时在隐藏信息末尾手动添加的二进制位“0”,得到正确的包含纠错码的隐藏信息的二进制字符串;另一方面,对整个二维码的二进制矩阵利用二维码本身携带的纠错码字对二进制矩阵进行RS纠错,还原二维码本身携带的普通信息,通过解析得到二维码携带的普通信息。
实施例的具体实施过程如下:
首先,客户端对准二维码进行扫描解析,将二维码图片转换为可以进行操作的二进制矩阵,一定像素区域内为黑色的区域用二进制位“1”表示,为白色的区域用二进制位“0”来表示,最后生成一个29*29的二进制矩阵。其中中间隐藏信息的7*10区域的二进制矩阵解析出来的效果如下:
然后,根据二维码编码时所选择的掩码,对生成的二进制矩阵进行解掩码,还原出原始二进制矩阵。上述矩阵解掩码后的矩阵如下:
最后,将该区域的二进制信息按照嵌入顺序依次提取出来,并去除由于长度不足手动添加的“0”位。本例中将上述二进制矩阵提取出来得到的二进制字符串为:
0000011100101001100001000101110000001110101000001110001111010000000000由于在嵌入包含纠错码隐藏信息的二进制字符串时,采用的时BCH(31,21)码,所以嵌入的字符串长度应为62位,去除上述提取出来的二进制字符串的为“0”的后8位得到的正确的包含纠错码的隐藏信息的二进制字符串应为:
S=00000111001010011000010001011100000011101010000011100011110100
步骤2,对步骤1最后得到的正确字符串进行分组,每组含(k+n)(其中k,n对应隐藏信息嵌入步骤2的k,n值)位,并对每组二进制串进行BCH解码,得到每组的有效二进制信息
实施例的具体实施过程如下:
首先,对提取出来的正确的二进制字符串进行分组。由于对隐藏信息纠错的编码选择的BCH(31,21),因此每组应含31位。将上述过程中得到的字符串按每组31位进行分组,从而可得到两组二进制串分别为:0000011100101001100001000101110、0000011101010000011100011110100。
然后,分别对每组进行BCH解码,得到正确的有效信息。对字符串0000011100101001100001000101110进行解码得到的正确信息为:000001110010100110000;对字符串0000011101010000011100011110100进行解码得到的正确信息为:000001110101000001110。
最后,将各组解码得到的正确信息按照分组顺序进行拼接得到最终的隐藏信息的二进制字符串,最终结果为:T=000001110010100110000000001110101000001110
步骤3,将步骤2中最后得到的二进制字符串转换为明文形式,即为二维码携带的隐藏的信息。
实施例的实施过程如下:
将字符串T利用二进制转十进制的方法转换为数值型为:M=123044162062。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (2)
1.一种基于二维码的信息隐藏方法,其特征在于,包括:
隐藏信息的嵌入步骤:选定作为信息隐藏载体的二维条码的版本和纠错码的等级,然后将隐藏信息转换为二进制字符串,并基于BCH编码原理得到包含纠错码的隐藏信息的二进制字符串,最后将普通信息按照QRCode编码规则编码成构造二进制矩阵,并基于包含纠错码的隐藏信息的二进制字符串得到掩码过后的二进制矩阵,并将该矩阵根据“0”、“1”进行着色并转换为二维码图片;
隐藏信息的提取步骤:用户使用客户端读物二维码后,进行原始二进制矩阵的转换后,进行RS纠错并得到正确字符串,最终根据得到的正确字符串转换为明文形式,获得二维码携带的隐藏的信息;
所述隐藏信息的嵌入步骤具体包括:
步骤1,根据二维条码中的普通信息的长度与类型以及计算所需嵌入的隐藏信息增加BCH纠错码后的二进制长度,选定出作为信息隐藏载体的二维条码的版本和纠错码的等级;
步骤2,将隐藏信息转换为二进制字符串,根据隐藏信息需要纠错的位数对该字符串进行分组,每组含k位二进制信息,并利用BCH编码原理计算得出每组二进制信息的n位BCH纠错码;若二进制字符串在分组后存在某组二进制信息不足k位时,应先在二进制字符串添“0”补足,直到各个分组都包含k位二进制位;在得到各组的BCH纠错码后将每组的BCH纠错码分别插入至相应有效信息后,形成包含纠错码的隐藏信息的二进制字符串,即为所需嵌入二维码编码中的信息;
步骤3,在将普通信息按照QRCode编码规则编码成构造二进制矩阵时,根据步骤2最后得出的字符串的长度在不破坏QRCode基本结构的情况下选中矩阵的数据和纠错码字区域的一块矩形区域,按照构造规则将字符串按位依次放入该区域中替换原本对普通信息编码后的二进制信息,当二进制信息长度小于矩形区域可放置长度时选择在末尾添0补足;在二进制矩阵编码构造完成后,再通过掩码对整个数据和纠错码区域进行掩膜,使得二维码图形中的有颜色且白色除外的区域与白色域能够比率最优的分布;
步骤4,将掩码过后的二进制矩阵根据“0”、“1”进行着色并转换为图片。
2.根据权利要求1所述的一种基于二维码的信息隐藏方法,其特征在于,所述隐藏信息的提取步骤具体包括:
步骤1,用户使用客户端对准作为隐藏信息载体的二维码进行扫描,在对二维码图片进行解析后再解掩码生成所携带信息的原始二进制矩阵后,根据隐藏信息嵌入时选中的区域,将该区域的二进制信息按嵌入顺序依次提取出来;然后一方面将提取出来的信息根据BCH分组去除由于长度不足而在放入矩阵时在隐藏信息末尾手动添加的二进制位“0”,得到正确的包含纠错码的隐藏信息的二进制字符串;另一方面,对整个二维码的二进制矩阵利用二维码本身携带的纠错码字对二进制矩阵进行RS纠错,还原二维码本身携带的普通信息,通过解析得到二维码携带的普通信息;
步骤2,对步骤1最后得到的正确字符串进行分组,每组含k+n位,其中k,n对应隐藏信息嵌入步骤2的k,n值,并对每组二进制串进行BCH解码,得到每组的有效二进制信息;
步骤3,将步骤2中最后得到的二进制字符串转换为明文形式,即为二维码携带的隐藏的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710030679.2A CN106815544B (zh) | 2017-01-16 | 2017-01-16 | 一种基于二维码的信息隐藏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710030679.2A CN106815544B (zh) | 2017-01-16 | 2017-01-16 | 一种基于二维码的信息隐藏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106815544A CN106815544A (zh) | 2017-06-09 |
CN106815544B true CN106815544B (zh) | 2019-05-10 |
Family
ID=59111124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710030679.2A Expired - Fee Related CN106815544B (zh) | 2017-01-16 | 2017-01-16 | 一种基于二维码的信息隐藏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815544B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358284A (zh) * | 2017-07-11 | 2017-11-17 | 北京捷润科技有限公司 | 二维码的生成方法、读取方法、生成装置和读取装置 |
CN107766771B (zh) * | 2017-11-15 | 2021-01-19 | 深圳大学 | 二维码检测方法以及终端 |
WO2019095171A1 (zh) * | 2017-11-15 | 2019-05-23 | 深圳大学 | 二维码检测方法以及终端 |
CN108108794B (zh) * | 2017-12-07 | 2021-01-15 | 北京大学 | 一种基于二维码图像隐藏的可视化信息增强方法和系统 |
CN109948762A (zh) * | 2017-12-20 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 用于生成二维码的方法和装置 |
CN108509801A (zh) * | 2018-03-13 | 2018-09-07 | 福建新大陆电脑股份有限公司 | 一种可读标识数据隐藏方法、数据提取方法及设备 |
CN108734048A (zh) * | 2018-05-29 | 2018-11-02 | 西安理工大学 | 基于专有码的多维度二维码生成与译码方法 |
CN108921264A (zh) * | 2018-06-29 | 2018-11-30 | 连尚(新昌)网络科技有限公司 | 用于生成二维码的方法和设备 |
CN108960000A (zh) * | 2018-07-17 | 2018-12-07 | 深圳市零点零科技有限公司 | 一种长条小型二维码识别方法 |
CN109255417A (zh) * | 2018-09-29 | 2019-01-22 | 连尚(新昌)网络科技有限公司 | 用于生成二维码的方法和设备 |
CN109657769B (zh) * | 2018-12-29 | 2021-11-19 | 安徽大学 | 一种基于游程编码的二维码信息隐藏方法 |
CN109816077A (zh) * | 2019-01-16 | 2019-05-28 | 王诗会 | 一种二维码信息的隐藏方法、装置、电子设备及存储介质 |
CN109840574B (zh) * | 2019-01-16 | 2022-05-17 | 王诗会 | 一种二维码信息的隐藏方法、装置、电子设备及存储介质 |
CN110097159B (zh) * | 2019-04-29 | 2022-09-23 | 绍兴聚量数据技术有限公司 | 一种基于汉明码的qr码安全认证方法及系统 |
CN110517052B (zh) * | 2019-08-26 | 2022-09-23 | 北京太和互邦科技有限公司 | 一种二维码生成方法、识别方法、二维码及设备 |
CN110517051A (zh) * | 2019-08-26 | 2019-11-29 | 北京太和互邦科技有限公司 | 一种二维码产生方法、解码方法、二维码及可读存储介质 |
CN112069850B (zh) * | 2020-09-04 | 2024-06-11 | 上海东普信息科技有限公司 | 基于二维码的服务提供方法、装置、设备及存储介质 |
CN113011543B (zh) * | 2021-03-10 | 2021-10-29 | 南京信息职业技术学院 | 行程码生成方法、读取方法、验证方法及移动终端和学校报到管理系统 |
CN114580589B (zh) * | 2022-02-23 | 2024-03-08 | 复旦大学 | 一种双通道二维码与用于防复印和信息隐藏的控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095936A (zh) * | 2015-07-22 | 2015-11-25 | 黄鹤南 | 一种基于信息隐藏的图像二维码及其生成方法和系统 |
CN105224974A (zh) * | 2014-06-30 | 2016-01-06 | 北京大学 | 一种矩阵式二维码中隐藏信息的方法和防伪方法 |
CN105825257A (zh) * | 2016-03-09 | 2016-08-03 | 东北大学 | 基于二维条码的信息隐藏与隐藏信息提取方法及系统 |
CN106250958A (zh) * | 2016-03-25 | 2016-12-21 | 立德高科(昆山)数码科技有限责任公司 | 带有隐藏标识的组合标签、及生成方法与生成系统 |
-
2017
- 2017-01-16 CN CN201710030679.2A patent/CN106815544B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224974A (zh) * | 2014-06-30 | 2016-01-06 | 北京大学 | 一种矩阵式二维码中隐藏信息的方法和防伪方法 |
CN105095936A (zh) * | 2015-07-22 | 2015-11-25 | 黄鹤南 | 一种基于信息隐藏的图像二维码及其生成方法和系统 |
CN105825257A (zh) * | 2016-03-09 | 2016-08-03 | 东北大学 | 基于二维条码的信息隐藏与隐藏信息提取方法及系统 |
CN106250958A (zh) * | 2016-03-25 | 2016-12-21 | 立德高科(昆山)数码科技有限责任公司 | 带有隐藏标识的组合标签、及生成方法与生成系统 |
Non-Patent Citations (1)
Title |
---|
一种基于二维码的信息隐藏方法;孙浩天 等;《电脑知识与技术》;21060630;第77-79页 |
Also Published As
Publication number | Publication date |
---|---|
CN106815544A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106815544B (zh) | 一种基于二维码的信息隐藏方法 | |
Shi et al. | Interleaving for combating bursts of errors | |
CN105426709B (zh) | 基于jpeg图像信息隐藏的私密信息通信方法与系统 | |
CN105825257B (zh) | 基于二维条码的信息隐藏与隐藏信息提取方法及系统 | |
US10062023B2 (en) | Method for concealing hidden-object information, device and program for concealing hidden-object information, method for extracting hidden-object information, and device for extracting hidden-object information | |
Rani et al. | Data security through qr code encryption and steganography | |
CN109657769B (zh) | 一种基于游程编码的二维码信息隐藏方法 | |
US20100327066A1 (en) | Network based reliable decoding of bar codes | |
CN105447546A (zh) | 可嵌入大比例图形的二维码及其编码和解码方法和设备 | |
Huang et al. | Efficient QR code secret embedding mechanism based on hamming code | |
CN101086761A (zh) | 高效信息点阵图形及其生成和解码方法 | |
CN106845593A (zh) | 一种矩形固定点阵信息编解码方法 | |
CN112016061A (zh) | 一种基于鲁棒水印技术的Excel文档数据保护方法 | |
Huang et al. | Efficient scheme for secret hiding in QR code by improving exploiting modification direction | |
CN105303075A (zh) | 基于pdf格式的自适应文本水印方法 | |
Huang et al. | Enhanced (n, n)-threshold QR code secret sharing scheme based on error correction mechanism | |
CN110322386A (zh) | 一种数字文本水印嵌入及检测方法和装置 | |
CN103259621A (zh) | 彩色三维码的编码方法和装置以及彩色三维码的应用方法和系统 | |
CN107169395A (zh) | 一种更加安全的qr码生成及读取方法 | |
CN104598801B (zh) | 一种基于算法重构的动态二维码生成方法 | |
US20240086670A1 (en) | Methods for constructing, generating, and reading dot-matrix code, dot-matrix code generating and reading terminals, and dot-matrix code system | |
Huang et al. | Sudoku-based secret sharing approach with cheater prevention using QR code | |
Yu et al. | A Novel Three‐Layer QR Code Based on Secret Sharing Scheme and Liner Code | |
CN105718978A (zh) | Qr码的生成方法、装置及解码方法、装置 | |
Duda et al. | Image-like 2d barcodes using generalizations of the Kuznetsov–Tsybakov problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190510 Termination date: 20220116 |