CN107481181B - 一种用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统 - Google Patents
一种用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统 Download PDFInfo
- Publication number
- CN107481181B CN107481181B CN201710621591.8A CN201710621591A CN107481181B CN 107481181 B CN107481181 B CN 107481181B CN 201710621591 A CN201710621591 A CN 201710621591A CN 107481181 B CN107481181 B CN 107481181B
- Authority
- CN
- China
- Prior art keywords
- byte
- picture
- password
- bytes
- key
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Facsimile Transmission Control (AREA)
Abstract
一种用于保护个人隐私的图片隐藏方法,包括以下步骤:1.1)确定图片关键标签解析表;1.2)扫描原始图片,记录关键标签存储字节和对应的位置,生成列表;1.3)根据加密密码或/与随机生成密码得到密码字符串,密码字符串长度与关键标签个数相同;1.4)将列表中的关键标签存储字节换成密码字符串中的密码字符;1.5)依次取出密码字符串的元素和列表中的元素得到新串,对新串进行加密得到加密串;1.6)写入辅助信息;1.7)将掩盖图片的图像开始标签存储字节去除后,将剩余的部分拼接到arr_byte的尾部,完成原始图片隐藏。以及提供一种用于保护个人隐私的图片还原方法和图片隐藏系统。本发明在海量图片处理时具有较高的图片处理效率。
Description
技术领域
本发明涉及非结构化大数据存储领域,涉及一种对可能泄露个人隐私的图片(jpg文件)进行技术处理后隐藏原始图片信息的图片隐藏方法、还原方法及图片隐藏系统。
背景技术
对于公共领域,随着社交媒体的急剧增长和普及,人们因为信息交流的便利性,淡化了个人的隐私问题,上传到网络上的图片往往被人恶意使用;对于个人,人们喜欢将个人的图片存放到私人计算机中或移动存储中,当计算机外送维修或移动存储设备丢失时,涉及个人隐私的图片往往被泄露;对于特定的领域,如医疗领域的医学诊断图片,这些图片往往含有患者的个人信息,在医学信息交流过程中如果把控不好,就会造成患者个人隐私的泄露。
对于图片信息的隐私保护问题,人们首先想到的是对图片加密处理,这样的技术层出不穷,如:申请号为201510757987.6的《图片加密、解密的方法及装置》、申请号为201510346357.X的《一种图片加密方法及移动终端》、申请号为《一种图片加密的方法及装置》、申请号为201410117626.0的《图片加密方法、装置及电子设备》、申请号为201610418686.5的《基于NFC的移动终端图片加密与解密处理方法及系统》等。这些加密方法都涉及对图片的图像数据段进行合并、转换或移位处理中的一种或多种技术,在用于海量图片处理时,不得不面对一个共同的性能问题,如何满足在海量图片处理时保持较高的图片处理效率。
发明内容
为了克服已有图片加密方法在海量图片处理时图片处理效率较低的不足,本发明提供了一种在海量图片处理时具有较高的图片处理效率的用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统。
本发明解决其技术问题所采用的技术方案是:
一种用于保护个人隐私的图片隐藏方法,所述方法包括以下步骤:
1.1)确定JPEG图片关键标签解析表,JPEG图片标记解析表至少包含关键标签、关键标签存储字节,关键标签个数为N_maker;
1.2)扫描原始图片,根据JPEG图片关键标签解析表中关键标签的顺序,记录关键标签存储字节和对应的位置,生成列表list<flag_position>;
1.3)根据加密密码或/与随机生成密码得到密码字符串pswd_ext,密码字符串pswd_ext长度与关键标签个数N_maker相同;
1.4)将list<flag_position>中的关键标签存储字节换成pswd_ext中的密码字符;
1.5)依次取出pswd_ext的元素和list<flag_position>中的元素,得到新串byte_source,使用任一种加密算法对byte_source进行加密,得到加密串byte_enc;
1.6)写入辅助信息arr_byte,辅助信息至少包含加密标识符、加密串byte_enc、将关键标签存储字符加密后的原始图片;
1.7)将掩盖图片的图像开始标签SOI存储字节去除后,将剩余的部分拼接到arr_byte的尾部,完成原始图片隐藏。
进一步,所述步骤1.2)中,根据扫描原始图片里面的关键标签对应的存储字节,并记录该关键标签存储字节和对应的位置生成列表list<flag_position>,列表里面元素的组成格式为2个字节的存储字节和4个字节的位置。
再进一步,所述步骤1.3)中,根据加密密码或/与随机生成密码得到密码字符串pswd_ext的过程如下:
1.3.1)根据加密的密码得到密码字符串pswd_code,如果密码不足64位或密码为空,随机取ASCII编码表中可打印的字符填充到密文后面,使得pswd_code的字符长度达到64位,并记录原始密码的长度N;
1.3.2)将pswd_code中的每个字符扩展成两个字节,然后在高位第9位至15位随机填充数字,使得扩展后的pswd_code每个元素都不一样,在高字节上填充0至127之间不同的数字,得到扩展后的密码串pswd_ext;
1.3.3)根据扩展后的密码串pswd_ext的下标和ID将pswd_ext里面的字符和关键标签存储字节做成一个对照关系map_code,此处需要注意的是pswd_ext的下标是从0开始的,所以,pswd_ext[0]里面的字符对应于第一个关键标签(SOF0)存储字节的Hex码;
1.3.4)根据map_code和list<flag_position>将原图中的关键标签存储字节替换成pswd_ext里面字符的二进制编码;
1.3.5)依次取出list<flag_position>中的元素拼接成二进制串,再和pswd_ext的二进制串进行拼接,得到新串byte_source,使用任一种加密算法对byte_source进行加密,得到加密串byte_enc并记录其长度L。
所述步骤1.6)中,写入辅助信息的过程如下:
1.6.1)建立一个二进制数组arr_byte,其内容依次包括:图片开始标签SOI;添加的应用标签APP0;arr_byte的长度length;4个字符的加密标识符;原始密码的长度;byte_enc的长度;byte_enc;以及将关键标签存储字节加密后的原始图片;
arr_byte中的元素length包括:保存length本身的整形数字字节数,使用4个字节存储;4个字符的加密标识符,使用5个字节存储;原始密码的长度N数字字节数,使用2个字节存储就足够了;密文byte_enc的长度L的数字字节数;密文byte_enc的长度L;原始图片的字节数S;得出长度的计算公式length=S+L+13;其中:S为原始图片的字节数,L为密文byte_enc的字节数;
1.6.2)将开始标签SOI存储字节写入arr_byte的最前端,将APP0标签存储字节写入SOI存储字节后面,然后依次写入长度length、加密标识、原始密码的长度N、byte_enc的长度L、byte_enc、将关键标签存储字节替换后的原始图片。
一种用于保护个人隐私的的图片还原方法,所述方法包括以下步骤:
2.1)读取图片隐藏后的信息;
2.2)根据辅助信息,读取加密串byte_enc,利用图片隐藏时采用的加密算法对应的解密方法解密获得byte_source;
2.3)读取pswd_ext,转换成加密密码;
2.4)如果输入密码与加密密码不符,则返回,不还原图片;
2.5)读取list<flag_position>,根据JPEG图片关键标签解析表中关键标签的顺序,将list<flag_position>中对应位置换成关键标签存储字节;
2.6)获得原始图片。
进一步,所述步骤2.2)中,读取加密串byte_enc的过程如下:
2.2.1)跳过图像开始标签从第3个字节开始读取两个字节,判断是否是应用标,如果是则执行2.2.2),否则返回;
2.2.2)从第5个字节处,读取长度字节,得出辅助信息的长度;
2.2.3)从第9个字节处,读取5个字节,将前4个字节转成字符串,判断是否是加密标识,如果是,执行2.2.4),否则返回;
2.2.4)从第14个字节处,读取密码密文长度字节,得出密码长度N;
2.2.5)从第16个字节处,读取byte_enc的长度字节得到byte_enc的长度L;
2.2.6)从第18个字节处读取L个字节得到密文byte_enc。
再进一步,所述步骤2.3)中,转换成加密密码的过程为:
2.3.1)读取byte_source前128(即64×2)个字符得到扩展的pswd_ext;
2.3.2)取pswd_ext中每个字符的低7位,转成字符串得到密码串pswd_code;
2.3.3)跟据密码长度N截取pswd_code前N个字符得到原始pswd_code。
更进一步,所述步骤2.4)的过程如下:
2.4.1)读取byte_source剩余的字节(第129个字节开始),转成列表,得到list<flag_position>;
2.4.2)到list<flag_position>中读取图像开始标签(SOI存储字节)和对应的位置得到p_begin以及图像结束标签(EOI存储字节)和对应的位置得到p_end,(注意:p_begin和p_end要分别跳过前面的偏移量,即:18+L)截取p_begin和p_end(含p_begin和p_end)之间的数据得到加密的原图;
2.4.3)根据list<flag_position>里面的位置信息将加密的原图中对应的存储字节替换成list<flag_position>里面的存储字节。
一种用于保护个人隐私的图片隐藏系统,所述系统包括加密密码模块、JPEG图片关键标签解析模块、原始图片扫描模块、关键标签存储字节隐藏模块、加密模块、辅助信息模块和图片隐藏模块,其中
所述加密密码模块,用于获得用户的加密密码,生成密码字符串;
所述JPEG图片关键标签解析模块,用于存储JPEG图片关键标签解析表,JPEG图片标记解析表至少包含关键标签、关键标签存储字节;
所述原始图片扫描模块,用于扫描原始图片,根据JPEG图片关键标签解析表中关键标签的顺序,记录关键标签存储字节和对应的位置;
所述关键标签存储字节隐藏模块,用于将原始图片扫描获得的关键标签存储字节换成密码字符串中的密码字符;
所述加密模块,用于使用加密算法对密码字符串和关键标签存储字节隐藏后的信息进行加密,得到加密串;
所述辅助信息模块,用于写入辅助信息,辅助信息至少包含加密标识符、加密串、将关键标签存储字符加密后的原始图片;
所述图片隐藏模块,用于将掩盖图片的图像开始标签存储字节去除后,将剩余的部分拼接到辅助信息的尾部,得到完成原始图片隐藏。
本发明的有益效果主要表现在:使用仅对关键标签存储字节进行加密的方法,避免对图片整个字节进行加密,在海量图片处理时具有较高的图片处理效率。
附图说明
图1是用于保护个人隐私的图片隐藏方法的流程图。
图2是待加密图片。
图3是显示图片。
图4是加密后的图片
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种用于保护个人隐私的图片隐藏方法,包括以下步骤:
1.1)确定JPEG图片关键标签解析表,JPEG图片标记解析表至少包含关键标签、关键标签存储字节,关键标签个数为N_maker;
1.2)扫描原始图片,根据JPEG图片关键标签解析表中关键标签的顺序,记录关键标签存储字节和对应的位置,生成列表list<flag_position>;
1.3)根据加密密码或/与随机生成密码得到密码字符串pswd_ext,密码字符串pswd_ext长度与关键标签个数N_maker相同;
1.4)将list<flag_position>中的关键标签存储字节换成pswd_ext中的密码字符;
1.5)依次取出pswd_ext的元素和list<flag_position>中的元素,得到新串byte_source,使用任一种加密算法对byte_source进行加密,得到加密串byte_enc;
1.6)写入辅助信息arr_byte,辅助信息至少包含加密标识符、加密串byte_enc、将关键标签存储字符加密后的原始图片;
1.7)将掩盖图片的图像开始标签SOI存储字节去除后,将剩余的部分拼接到arr_byte的尾部,完成原始图片隐藏。
进一步,所述步骤1.2)中,根据表1扫描原始图片里面的关键标签对应的存储字节(表1中的Hex字段),并记录该关键标签存储字节和对应的位置生成列表list<flag_position>,列表里面元素的组成格式为2个字节的存储字节和4个字节的位置。
再进一步,所述步骤1.3)中,根据加密密码或/与随机生成密码得到密码字符串pswd_ext的过程如下:
1.3.1)根据加密的密码得到密码字符串pswd_code,如果密码不足64位(字节)或密码为空,随机取ASCII编码表中可打印的字符填充到密文后面,使得pswd_code的字符长度达到64位,并记录原始密码的长度N。这样做的目的是因为表1中一共定义了64个不同的关键标签,希望能够通过替换将关键标签存储字节换成密码字符;
1.3.2)将pswd_code中的每个字符(占1个字节)扩展成两个字节,然后在高位第9位至15位随机填充数字,使得扩展后的pswd_code每个元素(占两字节)都不一样,同时避免与表1里的存储字节相同,方法是在高字节上填充0至127之间不同的数字,得到扩展后的密码串pswd_ext;
1.3.3)根据扩展后的密码串pswd_ext的下标和表1中的ID将pswd_ext里面的字符(每个字符占两个字节)和表1中的关键标签存储字节做成一个对照关系map_code,此处需要注意的是pswd_ext的下标是从0开始的,所以,pswd_ext[0]里面的字符对应于附表(1)中的第一个关键标签(SOF0)存储字节的Hex码;
1.3.4)根据map_code和list<flag_position>将原图中的关键标签存储字节替换成pswd_ext里面字符(每个字符占两个字节)的二进制编码;
1.3.5)依次取出list<flag_position>中的元素拼接成二进制串,再和pswd_ext的二进制串进行拼接(pswd_ext在前面),得到新串byte_source,使用任一种加密算法对byte_source进行加密,得到加密串byte_enc并记录其长度L。
再进一步,所述步骤1.6)中,写入辅助信息的过程如下:
1.6.1)建立一个二进制数组arr_byte,其内容依次包括:图片开始标签SOI;添加的应用标签APP0;arr_byte的长度length(不含SOI和APP0);4个字符的加密标识符(加密标识符不能是“JFIF”或“JFXX”,因为这两个已经被标准[1](埃里克·哈密尔顿(Hamilton,Eric):JPEG文件交换格式(JPEG File Interchange Format),版本(Version)1.02.1992-09-01)保留使用,原始密码的长度;byte_enc的长度;byte_enc;以及将关键标签存储字节加密后的原始图片;
arr_byte中的元素length包括:保存length本身的整形数字字节数,使用4个字节存储(常数4);4个字符的加密标识符,根据规范要求[1],使用5个字节存储(常数5);原始密码的长度N数字字节数,使用2个字节存储就足够了(常数2);密文byte_enc的长度L的数字字节数(常数2);密文byte_enc的长度L;原始图片的字节数S;得出长度的计算公式length=S+L+13;其中:S为原始图片的字节数,L为密文byte_enc的字节数;
1.6.2)将开始标签SOI存储字节写入arr_byte的最前端,将APP0标签存储字节写入SOI存储字节后面,然后依次写入长度length、加密标识、原始密码的长度N、byte_enc的长度L、byte_enc、将关键标签存储字节替换后的原始图片;
由于pswd_code里面的字符和表1中的关键标签存储字节有着一个顺序上的对照关系,所以关键标签存储字节的转换关系map_code无需存储。
一种用于保护个人隐私的的图片还原方法,包括以下步骤:
2.1)读取图片隐藏后的信息;
2.2)根据辅助信息,读取加密串byte_enc,利用图片隐藏时采用的加密算法对应的解密方法解密获得byte_source;
2.3)读取pswd_ext,转换成加密密码;
2.4)如果输入密码与加密密码不符,则返回,不还原图片;
2.5)读取list<flag_position>,根据JPEG图片关键标签解析表中关键标签的顺序,将list<flag_position>中对应位置换成关键标签存储字节;
2.6)获得原始图片。
进一步,所述步骤2.2)中,读取加密串byte_enc的过程如下:
2.2.1)跳过图像开始标签(SOI存储字节,2个字节)从第3个字节开始读取两个字节,对照表1,判断是否是应用标签(APP0存储字节,2个字节),如果是则执行2.2.2),否则返回;
2.2.2)从第5个字节处,读取长度字节(4个字节),得出辅助信息的长度;
2.2.3)从第9个字节处,读取5个字节,将前4个字节转成字符串,判断是否是加密标识,如果是,执行2.2.4),否则返回;
2.2.4)从第14个字节处,读取密码密文长度字节(2个字节),得出密码长度N;
2.2.5)从第16个字节处,读取byte_enc的长度字节(2个字节)得到byte_enc的长度L;
2.2.6)从第18个字节处读取L个字节得到密文byte_enc。
再进一步,所述步骤2.3)中,转换成加密密码的过程为:
2.3.1)读取byte_source前128(即64×2)个字符得到扩展的pswd_ext;
2.3.2)取pswd_ext中每个字符的低7位,转成字符串得到密码串pswd_code;
2.3.3)跟据密码长度N截取pswd_code前N个字符得到原始pswd_code。
更进一步,所述步骤2.4)的过程如下:
2.4.1)读取byte_source剩余的字节(第129个字节开始),转成列表,得到list<flag_position>;
2.4.2)到list<flag_position>中读取图像开始标签(SOI存储字节)和对应的位置得到p_begin以及图像结束标签(EOI存储字节)和对应的位置得到p_end,(注意:p_begin和p_end要分别跳过前面的偏移量,即:18+L)截取p_begin和p_end(含p_begin和p_end)之间的数据得到加密的原图;
2.4.3)根据list<flag_position>里面的位置信息将加密的原图中对应的存储字节替换成list<flag_position>里面的存储字节。
一种用于保护个人隐私的图片隐藏系统,包括加密密码模块、JPEG图片关键标签解析模块、原始图片扫描模块、关键标签存储字节隐藏模块、加密模块、辅助信息模块和图片隐藏模块,其中
所述加密密码模块,用于获得用户的加密密码,生成密码字符串;
所述JPEG图片关键标签解析模块,用于存储JPEG图片关键标签解析表,JPEG图片标记解析表至少包含关键标签、关键标签存储字节;
所述原始图片扫描模块,用于扫描原始图片,根据JPEG图片关键标签解析表中关键标签的顺序,记录关键标签存储字节和对应的位置;
所述关键标签存储字节隐藏模块,用于将原始图片扫描获得的关键标签存储字节换成密码字符串中的密码字符;
所述加密模块,用于使用加密算法对密码字符串和关键标签存储字节隐藏后的信息进行加密,得到加密串;
所述辅助信息模块,用于写入辅助信息,辅助信息至少包含加密标识符、加密串、将关键标签存储字符加密后的原始图片;
所述图片隐藏模块,用于将掩盖图片的图像开始标签存储字节去除后,将剩余的部分拼接到辅助信息的尾部,得到完成原始图片隐藏。
实例:一种用于保护个人隐私的图片隐藏方法,处理原始图片的过程:由于篇幅限制,只演示处理原始图片的过程;首先准备两张图片一张为待加密的图片如图1所示,其大小为58.5KB,另一张为显示图片,该图片不涉及隐私的信息即可,如图2所示,其大小为2.43KB。包括以下步骤:
步骤1根据表1扫描原始图片(source.jpg)里面的关键标签对应的存储字节,并记录关键标签对应的存储字节和其所在的位置信息,得到:关键标签SOI位置为0,存储字节为0xFFC0,APP1位置为2,存储字节为0x FFE1。。。。。。最后一个为EOI位置为85297,存储字节为0xFFD9。收集存储字节和位置生成list<flag_position>;
步骤2将原图中的关键标签进行加密,假设加密的密码pswd_code为12345678:
步骤2.1在密码pswd_code后面填充随机表2中的字符使达到64位字符长度,结果为:
12345678zFqh[AaO0{thx9A-6c^]XzjY,Py5:fpZtfdo*i_%+JL_Y2}h`1RWXE10
步骤2.2将密码pswd_code中每一个字符扩展为两个字节存储并在其高位第8位至15位随机填充数字使每个字符都不一样,结果用16进制表示为:0x4D31、0x0032、0x7233、0x4A34。。。。。。0x1A31、0x6D30;
步骤2.3根据扩展后的密码串pswd_ext的下标和附表(1)中的ID将pswd_ext里面的字符(每个字符占两个字节)和附表(1)中的关键标签做成一个对照关系map_code,结果为:0x4D31=>0xFFC0、0x0032=>0xFFC1、0x7233=>0xFFC2。。。。。。0x1A31=>0xFFFD、0x6D30=>0xFFFE;
步骤2.4根据map_code和list<flag_position>将原图中的关键标签字节码替换成pswd_ext里面字符(每个字符占两个字节)的二进制编码,即根据list<flag_position>中的标签字节码以及对应的位置,将原图中所有0xFFC0都替换成0x4D31,所有0xFFC1都替换成0x0032,依次类推;
步骤2.5依次取出list<flag_position>中的元素拼接成二进制串,再和pswd_ext的二进制串进行拼接(pswd_ext在前面),得到新串byte_source。假设使用DES加密byte_source,得到加密串byte_enc为:“U2FsdGVkX1/zoaTiqnX.......JmtRhLP6+0JJ9wdg==”并记录其长度L为760
步骤3写入辅助信息,建立一个二进制数组arr_byte,依次写入0xFFD8(SOI)、0xFFE0(APP0)辅助信息的长度(不含SOI以及APP0)、加密标识“ENCF”、原始密码的长度0x0008、byte_enc的长度0x02F8、byte_enc的内容,最后写入加密后的原始图片(source.jpg);
步骤4将掩盖图片的图像开始标签(SOI)去除后,将剩余的部分拼接到arr_byte的尾部,写入新文件(output.jpg),结果如图3所示,其大小为61.1KB。
表1为JPGE常用的标签表,即JPEG图片标记解析表:
表1
表2为ASCII码表中的可打印字符:
! | " | # | $ | % | & | ' | ( | ) | * |
+ | , | - | . | / | 0 | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | : | ; | < | = | > |
? | @ | A | B | C | D | E | F | G | H |
I | J | K | L | M | N | O | P | Q | R |
S | T | U | V | W | X | Y | Z | [ | \ |
] | ^ | _ | ` | a | b | c | d | e | f |
g | h | i | j | k | l | m | n | o | p |
q | r | s | t | u | v | w | x | y | z |
{ | | | } | ~ |
表2。
Claims (9)
1.一种用于保护个人隐私的图片隐藏方法,其特征在于:所述方法包括以下步骤:
1.1)确定JPEG图片关键标签解析表,JPEG图片标签解析表至少包含关键标签、关键标签存储字节,关键标签个数为N_maker;
1.2)扫描原始图片,根据JPEG图片关键标签解析表中关键标签的顺序,记录关键标签存储字节和对应的位置,生成列表list<flag_position>;
1.3)根据加密密码或/与随机生成密码得到密码字符串pswd_ext,密码字符串pswd_ext长度与关键标签个数N_maker相同;
1.4)将list<flag_position>中的关键标签存储字节换成pswd_ext中的密码字符;
1.5)依次取出pswd_ext的元素和list<flag_position>中的元素,得到新串byte_source,使用任一种加密算法对byte_source进行加密,得到加密字符串byte_enc;
1.6)写入辅助信息arr_byte,辅助信息至少包含加密标识符、加密字符串byte_enc、将关键标签存储字节加密后的原始图片;
1.7)将掩盖图片的图像开始标签SOI存储字节去除后,将剩余的部分拼接到arr_byte的尾部,完成原始图片隐藏。
2.如权利要求1所述的一种用于保护个人隐私的图片隐藏方法,其特征在于:所述步骤1.2)中,根据扫描原始图片里面的关键标签对应的存储字节,并记录该关键标签存储字节和对应的位置生成列表list<flag_position>,列表里面元素的组成格式为2个字节的存储字节和4个字节的位置。
3.如权利要求2所述的一种用于保护个人隐私的图片隐藏方法,其特征在于:所述步骤1.3)中,根据加密密码或/与随机生成密码得到密码字符串pswd_ext的过程如下:
1.3.1)根据加密的密码得到密码字符串pswd_code,如果密码不足64位或密码为空,随机取ASCII编码表中可打印的字符填充到密文后面,使得pswd_code的字符长度达到64位,并记录原始密码的长度N;
1.3.2)将pswd_code中的每个字符扩展成两个字节,然后在高位第9位至15位随机填充数字,使得扩展后的pswd_code每个元素都不一样,在高字节上填充0至127之间不同的数字,得到扩展后的密码字符串pswd_ext;
1.3.3)根据扩展后的密码字符串pswd_ext的下标和ID将pswd_ext里面的字符和关键标签存储字节做成一个对照关系map_code,此处需要注意的是pswd_ext的下标是从0开始的,所以,pswd_ext[0]里面的字符对应于第一个关键标签存储字节的Hex码;
1.3.4)根据map_code和list<flag_position>将原图中的关键标签存储字节替换成pswd_ext里面字符的二进制编码;
1.3.5)依次取出list<flag_position>中的元素拼接成二进制串,再和pswd_ext的二进制串进行拼接,得到新串byte_source,使用任一种加密算法对byte_source进行加密,得到加密字符串byte_enc并记录其长度L。
4.如权利要求3所述的一种用于保护个人隐私的图片隐藏方法,其特征在于:所述步骤1.6)中,写入辅助信息arr_byte的过程如下:
1.6.1)建立一个二进制数组,其内容依次包括:图片开始标签SOI;添加的应用标签APP0;arr_byte的长度length;4个字符的加密标识符;原始密码的长度;byte_enc的长度;byte_enc;以及将关键标签存储字节加密后的原始图片;所述二进制数组的内容构成辅助信息arr_byte;
arr_byte中的元素length包括:保存length本身的整形数字字节数,使用4个字节存储;4个字符的加密标识符,使用5个字节存储;原始密码的长度N数字字节数,使用2个字节存储;加密字符串byte_enc的长度L的数字字节数;原始图片的字节数S;得出长度的计算公式length=S+L+13;其中:S为原始图片的字节数;
1.6.2)将开始标签SOI存储字节写入arr_byte的最前端,将APP0标签存储字节写入SOI存储字节后面,然后依次写入长度length、加密标识、原始密码的长度N、byte_enc的长度L、byte_enc、将关键标签存储字节替换后的原始图片。
5.一种用于保护个人隐私的图片还原方法,其特征在于:所述方法包括以下步骤:
2.1)读取图片隐藏后的信息;
2.2)根据辅助信息,读取加密字符串byte_enc,利用图片隐藏时采用的加密算法对应的解密方法解密获得新串byte_source;
2.3)读取扩展后的密码字符串pswd_ext,转换成加密密码;
2.4)如果输入密码与加密密码不符,则返回,不还原图片;
2.5)读取列表list<flag_position>,根据JPEG图片关键标签解析表中关键标签的顺序,将list<flag_position>中对应位置换成关键标签存储字节;
2.6)获得原始图片。
6.如权利要求5所述的一种用于保护个人隐私的图片还原方法,其特征在于:所述步骤2.2)中,读取加密字符串byte_enc的过程如下:
2.2.1)跳过图像开始标签从第3个字节开始读取两个字节,判断是否是应用标,如果是则执行2.2.2),否则返回;
2.2.2)从第5个字节处,读取长度字节,得出辅助信息的长度;
2.2.3)从第9个字节处,读取5个字节,将前4个字节转成字符串,判断是否是加密标识,如果是,执行2.2.4),否则返回;
2.2.4)从第14个字节处,读取密码密文长度字节,得出密码长度N;
2.2.5)从第16个字节处,读取加密字符串byte_enc的长度字节得到加密字符串byte_enc的长度L;
2.2.6)从第18个字节处读取L个字节得到加密字符串byte_enc。
7.如权利要求6所述的一种用于保护个人隐私的图片还原方法,其特征在于:所述步骤2.3)中,转换成加密密码的过程为:
2.3.1)读取byte_source前128个字符得到扩展的pswd_ext;
2.3.2)取pswd_ext中每个字符的低7位,转成字符串得到密码字符串pswd_code;
2.3.3)跟据密码长度N截取pswd_code前N个字符得到原始pswd_code。
8.如权利要求7所述的一种用于保护个人隐私的图片还原方法,其特征在于:所述步骤2.4)的过程如下:
2.4.1)读取byte_source剩余的字节,即第129个字节开始,转成列表,得到list<flag_position>;
2.4.2)到list<flag_position>中读取图像开始标签和对应的位置得到p_begin以及图像结束标签和对应的位置得到p_end,截取p_begin和p_end之间的数据得到加密的原图;
2.4.3)根据list<flag_position>里面的位置信息将加密的原图中对应的存储字节替换成list<flag_position>里面的存储字节。
9.一种用于保护个人隐私的图片隐藏系统,其特征在于:所述系统包括加密密码模块、JPEG图片关键标签解析模块、原始图片扫描模块、关键标签存储字节隐藏模块、加密模块、辅助信息模块和图片隐藏模块,其中
所述加密密码模块,用于获得用户的加密密码,生成密码字符串;
所述JPEG图片关键标签解析模块,用于存储JPEG图片关键标签解析表,JPEG图片标签解析表至少包含关键标签、关键标签存储字节;
所述原始图片扫描模块,用于扫描原始图片,根据JPEG图片关键标签解析表中关键标签的顺序,记录关键标签存储字节和对应的位置;
所述关键标签存储字节隐藏模块,用于将原始图片扫描获得的关键标签存储字节换成密码字符串中的密码字符;
所述加密模块,用于使用加密算法对密码字符串和关键标签存储字节隐藏后的信息进行加密,得到加密串;
所述辅助信息模块,用于写入辅助信息,辅助信息至少包含加密标识符、加密串、将关键标签存储字节加密后的原始图片;
所述图片隐藏模块,用于将掩盖图片的图像开始标签存储字节去除后,将剩余的部分拼接到辅助信息的尾部,完成原始图片隐藏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710621591.8A CN107481181B (zh) | 2017-07-27 | 2017-07-27 | 一种用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710621591.8A CN107481181B (zh) | 2017-07-27 | 2017-07-27 | 一种用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107481181A CN107481181A (zh) | 2017-12-15 |
CN107481181B true CN107481181B (zh) | 2020-08-04 |
Family
ID=60597675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710621591.8A Active CN107481181B (zh) | 2017-07-27 | 2017-07-27 | 一种用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107481181B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109448821B (zh) * | 2018-09-20 | 2021-07-02 | 中国石油天然气集团有限公司 | 一种数字正射影像图的网络传输方法 |
CN110138551A (zh) * | 2019-05-06 | 2019-08-16 | 深圳市沃特沃德股份有限公司 | 密码生成方法、装置、计算机设备及存储介质 |
CN111353166B (zh) * | 2020-02-25 | 2021-10-26 | 南通大学 | 一种图片转汉字的加密方法 |
CN113810189B (zh) * | 2021-10-27 | 2024-01-09 | 中电金信软件有限公司 | 一种密钥图片的生成方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093411A (zh) * | 2013-01-10 | 2013-05-08 | 华南师范大学 | 基于随机二态图像的加密-解密方法 |
CN105469353A (zh) * | 2015-12-25 | 2016-04-06 | 上海携程商务有限公司 | 水印图像的嵌入方法和装置及提取方法和装置 |
CN105653979A (zh) * | 2015-12-29 | 2016-06-08 | 银江股份有限公司 | 一种基于代码注入的隐私信息保护方法 |
CN106357608A (zh) * | 2016-08-19 | 2017-01-25 | 银江股份有限公司 | 一种面向个人医疗健康数据的隐私数据加密及解密方法 |
CN106686586A (zh) * | 2016-12-29 | 2017-05-17 | 广州凯耀资产管理有限公司 | 一种无线传输系统及其加解密方法 |
CN106845268A (zh) * | 2016-12-27 | 2017-06-13 | 银江股份有限公司 | 一种面向医疗机构的防止泄露患者隐私的系统及其方法 |
-
2017
- 2017-07-27 CN CN201710621591.8A patent/CN107481181B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093411A (zh) * | 2013-01-10 | 2013-05-08 | 华南师范大学 | 基于随机二态图像的加密-解密方法 |
CN105469353A (zh) * | 2015-12-25 | 2016-04-06 | 上海携程商务有限公司 | 水印图像的嵌入方法和装置及提取方法和装置 |
CN105653979A (zh) * | 2015-12-29 | 2016-06-08 | 银江股份有限公司 | 一种基于代码注入的隐私信息保护方法 |
CN106357608A (zh) * | 2016-08-19 | 2017-01-25 | 银江股份有限公司 | 一种面向个人医疗健康数据的隐私数据加密及解密方法 |
CN106845268A (zh) * | 2016-12-27 | 2017-06-13 | 银江股份有限公司 | 一种面向医疗机构的防止泄露患者隐私的系统及其方法 |
CN106686586A (zh) * | 2016-12-29 | 2017-05-17 | 广州凯耀资产管理有限公司 | 一种无线传输系统及其加解密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107481181A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107481181B (zh) | 一种用于保护个人隐私的图片隐藏方法、还原方法及图片隐藏系统 | |
Abdullah et al. | New approaches to encrypt and decrypt data in image using cryptography and steganography algorithm | |
CN104680077B (zh) | 一种加密图片的方法、查看图片的方法、系统和终端 | |
US8738928B2 (en) | Apparatus and method for processing extension information in image files | |
CN104517045B (zh) | 数字文档保护方法及系统 | |
US11727524B2 (en) | System and method for encoding and authenticating a digital image | |
US7925012B2 (en) | Method and system for the secure distribution of compressed digital texts | |
CN110110535B (zh) | 一种基于像素矩阵的低失真隐写方法 | |
CN107105324B (zh) | 一种保护弹幕信息的方法及客户端 | |
CN114285575B (zh) | 图像加密和解密方法和装置、存储介质及电子装置 | |
Joshi | A new approach of text steganography using ASCII values | |
CN102682072A (zh) | 多媒体文档的数据处理方法及系统 | |
CN112134687B (zh) | 基于二维码的信息加密解密方法 | |
CN105023232B (zh) | 在载体图像中嵌入净荷的方法及净荷重建、传输方法 | |
Choche et al. | A methodology to conceal QR codes for security applications | |
CN103646121A (zh) | 一种标识码及使用方法和装置 | |
JP5598120B2 (ja) | 画像処理装置 | |
Lin et al. | A copyright protection scheme based on PDF | |
Kavitha et al. | Lossless steganography on avi file using swapping algorithm | |
KR20220051510A (ko) | 개인 정보가 포함된 이미지의 보호 장치, 개인 정보가 포함된 이미지의 보호 방법 및 개인 정보가 포함된 이미지의 보호 방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램 | |
Nath et al. | Image steganography using encrypted message | |
JP5532473B2 (ja) | 番地カラーシステム、カラー写真画像を利用した符号化方法および復号化方法、並びに暗号化方法 | |
JP2006072783A (ja) | データエントリシステム及びデータエントリ方法 | |
CN105719223B (zh) | 一种批量图像加密方法、解密方法及系统 | |
JP5077002B2 (ja) | 可変印刷システム及びコンピュータプログラム |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 310012 1st floor, building 1, 223 Yile Road, Hangzhou City, Zhejiang Province Patentee after: Yinjiang Technology Co.,Ltd. Address before: 310012 1st floor, building 1, 223 Yile Road, Hangzhou City, Zhejiang Province Patentee before: ENJOYOR Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |