一种加密、解密方法及系统与流程

文档序号:16383081发布日期:2018-12-22 09:39阅读:203来源:国知局
一种加密、解密方法及系统与流程

本发明属于图片处理领域,特别涉及一种加密、解密方法及系统。

背景技术

随着知识产权意识的提升,人们越来越重视个人作品的版权,例如拍摄的照片、绘制的图像等。当图片在公共平台上展示,作者只是希望将这些图片分享给大家看,但是会有人在未得到作者授权的情况下非法下载、盗用这些图片,谋取利益。

目前现有的防止图片被盗用的方法主要是给图片添加水印,但是水印不仅影响美观还很容易被去掉,且当别人如果只裁剪图片的一部分进行使用时,没有办法证明图片的版权所有。



技术实现要素:

本发明要解决的技术问题在于克服现有技术的不足,提供了一种加密、解密方法及系统,所述加密、解密方法既可以防止图片被盗用,又不影响图片展示。

有鉴于此,本发明的目的在于提供一种加密方法,采用以下技术方案:一种加密方法,所述加密方法包括,

建立待加密图片的像素数组;

将所述待加密图片的像素数组等分为一个或多个网格数组;

在所述网格数组中均加入相同的加密信息,得到加密后的像素数组;

根据加密后的像素数组,配置加密后的图片。

进一步,所述加密方法还包括预设加密信息与加密规则,其中,

所述加密信息包括头部密钥、加密密钥和尾部密钥中的一个或组合;

所述加密规则包括加密算法、加密密钥添加方式、加密信息处理方式中的一个或多个。

进一步,所述加密算法至少包括,

将所述头部密钥、加密密钥或尾部密钥中的加密元素加入至待加密像素点数组,令加密后的像素点数组中前三位元素的和值的个位数数值与加密元素相等。

进一步,所述加密密钥添加方式至少包括,

确定加密密钥中第一个加密元素在待加密网格数组中第一位置;

从第一位置开始,在所述待加密网格数组添加加密密钥中的加密元素。

进一步,所述加密信息处理方式至少包括,

确定头部密钥、加密密钥或尾部密钥的加密字符串;

根据预设规则将头部密钥、加密密钥或尾部密钥的加密字符串转为数字;

将所述数字转为加密数组。

进一步,所述预设规则至少包括通过字典表将加密字符串转为数字。

进一步,所述像素数组包括行数组,且以四个数字组成的像素点数组为所述像素数组的最小单元。

进一步,所述将所述待加密图片的像素数组等分为一个或多个网格数组的步骤包括,

获取加密信息;

根据所述加密信息,确定能够加入所述加密信息的单位网格数组的高度与宽度;

根据所述单位网格数组高度与宽度,将所述待加密图片像素数组等分为一个或多个网格数组。

进一步,所述加密方法还包括,

若存在所述网格数组的高度或宽度不等于所述单位网格数组高度或宽度,对所述网格数组添加空白像素点数组。

进一步,在所述网格数组中均加入相同的加密信息,得到加密后的像素数组的步骤包括,

确定所述加密信息中的头部密钥、加密密钥以及尾部密钥;

从所述网格数组中预留出头部位置,并在头部位置加入头部密钥;

以所述头部位置为参考点,在所述网格数组中加入加密密钥;

在所述网格数组中确定尾部位置,并在尾部位置加入尾部密钥。

进一步,所述加密方法还包括去除空白像素点数组:

根据待加密图片的宽和高,令加密后像素数组中行数组中像素点数组集合的长度等于待加密图片的宽,令加密后像素数组在列方向上的像素点数组集合的长度等于待加密图片的高;

截取宽和高等于待加密图片的像素数组,以去除空白像素点数组。

本发明的另一目的还在于提供一种解密方法,所述解密方法包括,

建立待解密图片的待解密像素数组;

获取待解密像素数组中的头部位置和/或尾部位置,并根据头部位置和/或尾部位置,确定单位网格数组;

根据头部位置和/或尾部位置,在所述单位网格数组中提取加密密钥;

将获取的加密密钥与预设加密密钥进行比较。

进一步,所述解密方法还包括,

提取所述待解密像素数组中所有的像素点数组前三位元素和值的个位数数值;

提取出的预设头部位置和/或预设尾部位置的个位数数值并进行处理,获取待解密图片的头部密钥和/或尾部密钥;

将获取的头部密钥和/或尾部密钥与预设头部密钥和/或尾部密钥进行比较,确定头部位置和/或尾部位置,并确定单位网格数组。

本发明的另一目的还在于提供一种加密系统,所述加密系统包括,

像素数组建立模块,用于建立待加密图片的像素数组;

像素数组处理模块,用于将所述待加密图片的像素数组等分为一个或多个网格数组;

加密模块,用于在所述网格数组中均加入相同的加密信息,得到加密后的像素数组;

配置模块,用于根据加密后的像素数组,配置加密后的图片。

进一步,所述加密系统还包括,

预设模块,用于预设加密信息与加密规则。

本发明的另一目的还在于提供一种解密系统,所述解密系统包括,

像素数组建立模块,用于建立待解密图片的待解密像素数组;

获取模块,用于识别待解密像素数组中的头部位置和/或尾部位置,并根据头部位置和/或尾部位置,确定单位网格数组;

提取模块,用于根据头部位置和/或尾部位置,在所述单位网格数组中提取加密密钥;

比较模块,用于将获取的加密密钥与预设加密密钥进行比较。

本发明的另一目的还在于提供一种加密系统,所述系统包括至少一个处理器以及至少一个存储器;

所述存储器存储执行上述所述加密方法的计算机程序,所述处理器调用存储器中的所述计算机程序以执行上述所述的加密方法。

本发明的另一目的还在于提供一种解密系统,所述系统包括至少一个处理器以及至少一个存储器;

所述存储器存储执行上述所述解密方法的计算机程序,所述处理器调用存储器中的所述计算机程序以执行上述所述的解密方法。

本发明的加密、解密方法使得待加密图片的加密信息均匀分布在图片,且完善的加密规则使得加入图片的加密信息不会导致待加密图片失真,从而仍不影响加密图片的展示,进一步的,即使已加密图片被裁剪,根据部分图片仍可解密出加密信息,从而本发明的加密、解密方法能够有效地防止图片被盗用,提升了图片使用的安全性。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例中的一种加密方法流程示意图;

图2示出了本发明实施例中的一种网格数组示意图;

图3示出了本发明实施例中的一种等分成网格的像素数组示意图;

图4示出了本发明实施例中的一种以字符串为加密信息的加密信息处理流程示意图;

图5示出了本发明实施例中的一种待加密网格数组中加密信息布置示意图;

图6示出了本发明实施例中的一种解密方法流程示意图;

图7示出了本发明实施例中的一种加密系统的结构示意图;

图8示出了本发明实施例中的一种解密系统的结构示意图;

图9示出了本发明实施例中的另一种加密系统的结构示意图;

图10示出了本发明实施例中的另一种解密系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例中介绍了一种加密方法,首先,建立待加密图片的像素数组,其次,将所述待加密图片的像素数组等分为一个或多个网格数组,然后,在所述网格数组中均加入相同的加密信息,得到加密后的像素数组,最后,根据加密后的像素数组,配置加密后的图片。从而达到给图片加密防止图片被盗用的目的。

具体的,一张图片具有大量的像素信息,一个像素点包括rgb色值与alpha透明度值(也作通道值),其中,所述rgb代表red(红色)green(绿色)blue(蓝色),且r参数值、g参数值、b参数值以及alpha透明度值的范围均为0至255,从而所述一张图片的像素信息由很多数字组成,因此,一张图片的像素信息可看作是由很多数字组成的一维数组;从而建立待加密图片的像素数组,即将一个像素点可看作是由rgb色值与alpha透明度值四个数字组成的一维数组,从而所述待加密图片的原始像素数组为以一个像素点的一维数组为单元的二维数组,同时并记录所述待加密图片的高和宽,进一步地,所述像素点数组还包括一个或多个由像素点数组组成的行数组。优选地,将一个像素点的一维数组记为像素点数组。进一步地,根据加密信息,确定能够加入所述加密信息的单位网格数组的高度与宽度;再根据所述单位网格数组高度与宽度,将所述待加密图片像素数组等分为一个或多个网格数组。所述网格数组中的像素点数组为所述待加密图片像素数组的一部分。如图2中示例性的表明了网格数组的数据格式,从图2中可知,所述网格数组为每行的像素点数组组成网格数组的行数组,图2中只展示了网格数组中的一部分像素点数组。优选地,所述待加密图片可看作为一个或多个网格数组组成的二维数组,且对加密图片进行划分网格时满足网格的网格数组中有足够量的像素点数组满足可以加入所有的加密信息,从而在划分网格时,应同时考虑加密信息的长度以及原始像素数组的大小。

所述加密方法还包括添加空白像素点数组,在根据所述单位网格数组高度与宽度,将所述待加密图片像素数组等分为一个或多个网格数组的过程中,如图3所示,将加密图片分成多个网格,图3中所有的网格均与单位网格x具有相同的高和宽,但是在将图片分成相同的网格时存在所述待加密图片不满足平分所有网格的情况,则需要通过添加空白像素点数组使得将待加密图片平分为相同高和宽的网格,图3中,所述加密图片的原始高为h,宽为w,但平分网格时,部分网格不完整,从而添加了部分空白像素点数组使得待加密图片划分的网格均相同。添加空白像素点数组的目的是避免在每个网格中写入加密信息的时候网格数组不完整导致写入错误。优选地,待加密图片的像素数组等分成的网格数组中的像素点数组总数与单位网格数组中像素点数组总数相同。进一步优选地,等分网格时,若存在不能平分网格时,也可以根据单位网格数组中的像素点数组总数进行添加空白像素点数组。

所述加密方法还包括预设加密信息与加密规则,其中,所述加密信息包括头部密钥、加密密钥和尾部密钥中的一个或组合;所述加密规则包括加密算法、加密密钥添加方式、加密信息处理方式中的一个或多个。具体的,所述加密信息中的头部密钥、加密密钥或尾部密钥通常是由多个字符组成的加密字符串,则需要将加密字符串按照预设的加密信息处理方式进行处理,所述加密信息处理方式可以是将加密字符串转换为对应的数字,再将数字转换为加密数组,则最终采用加密数组中的加密元素对网格数组进行加密。具体的,如图4所示,以加密密钥的为字符串123abc、且预设规则采用字典表为示例性说明,图4中,首先需要将加密字符串123abc转换为对应的数字,根据字典表把加密字符串转换为对应的数字为:010203101112,则进一步的,将数字转换为加密数组,所述加密数组为[0,1,0,2,0,3,1,0,1,1,1,2],从而所述加密数组中的元素为所有的加密元素。优选地,所述加密信息可以是用户选中的一个或多个加密元素的组合。

进一步具体的,将所述加密信息中的头部密钥、加密密钥或尾部密钥加入至所述网格数组中时可以采用相同的加密算法,所述加密算法至少包括所述头部密钥、加密密钥或尾部密钥中的加密元素加入至待加密的像素点数组,令加密后的像素点数组中前三位元素的和值的个位数数值与加密元素相等。具体的加密算法步骤可以为:首先,确定要加密像素点数组与加密元素;其次,所述加密像素点数组中前三个元素进行加法运算,获取前三位元素和值的个位数数值,然后,将所述加密元素与所述个位数数值相减,得出两者之间的差值;最后,将所述差值按照添加规则与所述像素点数组中前三位元素中的一个或多个进行运算,得出加密后的像素点数组,所述加密后的像素点数组满足前三位元素进行相加,得出的和值的个位数数值等于加密元素。其中,所述差值与像素点数组中的前三位元素进行运算时,所述前三位元素中的任一元素的运算结果仍需满足在0-255之内,因此,将所述差值按照添加规则与所述像素点数组中前三位元素中的一个或多个进行运算,得出加密后的像素点数组的步骤还包括,若加密后的像素点数组中存在元素小于0时,则再将小于0的元素与10进行加法运算,或加密后的像素点数组中存在元素大于255时,则再将大于255的元素与10进行减法运算。优选地,所述加密算法不限于只令加密后的像素点数组中前三位元素的和值的个位数数值与加密元素相等,也可以是像素点数组中前三位元素中的任一元素的的个位数数值与加密元素相等或加密后像素点数组中四位元素的和值的个位数数值与加密元素相等等情况。

进一步具体的,对所述差值的添加规则进行示例性说明,至少包括将差值整合为具有三个元素的数组形式,此处差值只有一个,从而采用0数值与差值整合为具有三个元素的一维数组;比如差值为4,则可以整合为[4,0,0],但不限于[4,0,0],也可以[0,4,0]等,然后再分别与像素点数组中的前三位元素进行相加,得出加密后的像素点数组,例如像素点数组为[21,31,65,255],则相加后的数组为[25,31,65,255]。进一步地,所述加密算法中的添加规则还可以是将所述差值进行拆分,即将差值拆分为一个或多个添加元素;然后将拆分的添加数字整合为具有三个元素的一维数组;因将拆分后的添加数字与需要与待加密像素点数组的前三位元素进行相加,所述差值进行拆分时,拆分后的元素最多为3个。优选地,所述数值差尽量进行平分,可以既保证图片的质量,又不影响图片的展示。优选地,所述加密算法具有不唯一性,但满足加密后的像素点数组的前三位数字相加得出的结果个位数值等于加密数字。

以像素点数组为[23,34,45,255]、加密元素为6进行示例性说明,首先,像素点数组的前三位元素进行相加元素,得出的和值的个位数数值为2;其次,将所述加密元素与所述个位数数值相减,得出两者之间的差值为4,则需要将4加入至像素点数组[23,34,45,255]中的前三位元素中,然后,以采用对所述数值差进行三等分为示例性说明,则4可以拆分为2,1,1;再将2,1,1组成添加数组为[2,1,1],最后加添加数组[2,1,1]中的元素分别与像素点数组中的前三位元素进行相加,得出加密后的像素点数组为[25,35,46,255]。优选地,2,1,1三位元素在组成添加数组时不限于[2,1,1],三位元素的顺序也可以是[1,2,1]、[1,1,2]等。因此,所述添加数组具有不唯一性。

同理,以像素点数组为[1,23,3,255]、加密元素为1进行示例性说明,首先,像素点数组的前三位元素进行相加元素,得出的和值的个位数数值为7;其次,将所述加密元素与所述个位数数值相减,得出两者之间的差值为-6,则需要将-6加入至像素点数组[1,23,3,255]中的前三位元素中,然后,以采用对所述数值差进行三等分等分为示例性说明,则-6可以拆分为-2,-2,-2;再将-2,-2,-2组成添加数组为[-2,-2,-2],最后加添加数组[-2,-2,-2]中的元素分别与像素点数组中的前三位元素进行相加,得出加密后的像素点数组为[-1,21,1,255]。所述加密后的像素点数组存在元素-1小于0,则将-1与10进行加法运算,最终加密后的像素点数组为[9,21,1,255]。当加密后像素点数组中的元素存在大于255的情况时,则将大于255的元素与10进行减法运算,具体的不再举例赘述。

所述差值的三等分拆分可以是先将差值与3整除,并记录等分值与余值,其次,将余值与2整除,并记录等分值与余值,然后将与2整除后的余值与1整除,并记录等分值;最终将三次的等分值对应相加,得到三个添加元素,以差值4为例,则先与3整除,得到等分值为1,余值为1,则与3整除后的添加元素为1,1,1;则继续将余值与2整除得到等分值为0,余值为1,则余值与2整除后的添加元素为0,0,0;然后,继续将与2整除后的余值与1整除得到的等分值为1,余值为0(无法再等分),则与1整除后的添加元素为1,0,0;则三次运算后的添加元素进行相加为2,1,1,从而最后的添加数组为[2,1,1],总之,所述添加数组不具有唯一性。优选地,将所述差值加入像素点数组的算法不唯一。

所述差值的添加规则为加密算法中的一部分,从而上述示例性说明也是对加密算法进行部分示例性说明。

进一步具体的,在待加密图片等分获得的所有网格数组中均加入相同的加密信息,得到加密后的网格数组过程中,需从所述网格数组中划分出头部位置、加密位置以及尾部位置,首先,所述网格的网格数组中预留出头部位置,并在所述头部位置用于加入头部密钥。其中,所述头部位置占用一个或多个像素点数组,且所述一个或多个像素点数组可以是连续的和/或不连续。因此,所述头部密钥可以是一个或多个加密元素组合而成的加密数组。优选地,所述头部位置至少占用9个像素点数组。以图5进行示例性说明,所述头部位置位于所述网格数组的左上角,所述头部位置占用的像素点数组为9个,且采用的布置方式为从单位网格的左上角第一个像素点数组开始,依次占据了前三行行数组的前三个像素点数组,其中所述头部密钥采用的加密数组为[1,2,3,4,5,6,7,8,9],则分别将加密数组中的9个加密元素加入头部位置。所述头部位置的布置方式与所述头部密钥不唯一,可以根据所述头部密钥的长度确定所述头部位置占的像素点数组,以及像素点数组的位置,也可以根据头部位置确定头部密钥的长度。但是头部位置和/或头部密钥不能够过于简单,比如头部位置只占用4个像素点数组,则头部密钥只有四个加密元素,则可能存在已加密图片中有4个未加密的相邻像素点数组在解密时,提取出的内容与头部密钥相同,从而头部位置和/或头部密钥过于简单,使得头部位置难以确定的几率增大,则影响加密质量,给解密带来困难。

其次,在网格数组中以头部位置为参考点,按照加密密钥添加方式加入加密密钥,具体为:确定加密密钥中第一个加密元素在待加密网格数组中第一位置,从第一位置开始,在所述待加密网格数组中依次添加加密密钥中的加密元素,进一步具体的,所述加密密钥的添加方式不局限一种方式,可以为将所述加密密钥添加方式采用以从第一个加密元素的加密位置开始,在所述网格数组的行数组中每隔n个像素点数组添加一个加密元素,且在所述网格数组中是每隔n行行数组依次进行加密,其中n≥0。以图5为示例性说明,图5中第一个加密元素的位置为所述网格数组的头部位置第一行结束后的第一个像素点数组。图5中加密密钥采用字符串123abc,则加密数组为[0,1,0,2,0,3,1,0,1,1,1,2],从而所述加密数组中的元素依次按照从第一个加密元素的位置开始,在所述网格数组的行数组中每隔两个像素点数组添加一个加密元素,且在所述网格数组中是每隔两行行数组对所述网格数组进行加密。图5中由于网格数组限制只展示部分加密元素。该加密密钥添加方式使得图片既不失真,也起到了防止了图片被盗用。优选地,将所述网格数组的行数组均看成x轴,所述网格数组的列数组看成y轴,则所述加密密钥的添加方式为从第一个加密元素的位置开始,x轴是每隔n个像素点添加一个加密元素,y轴是每隔n行行数组依次进行加密,其中n≥0。

最后,在加密密钥添加结束后,在所述网格数组中确定尾部位置,并在尾部位置加入尾部密钥,优选地,所述尾部密钥紧接在所述加密密钥之后,以作为所述加密密钥的结束标志,且在加入尾部密钥时,依据所述加密密钥的添加方式进行添加。因此加入尾部密钥的像素点数组组成网格数组的尾部位置。进一步地,所述尾部位置可以是一个或多个像素点数组,所述尾部密钥可以是一个或多个加密元素,其中,可以是所述尾部位置确定所述尾部密钥的长度,也可以是所述尾部密钥确定所述尾部位置占用的像素点数组个数以及其布置方式。以图5为示例性说明,所述尾部密钥采用的是字符串“&”,所述字符串“&”在字典表中对应的数字为“56”,则所述尾部密钥数组为[5,6],且采用的加密方式为从第一个加密元素的位置开始,在所述网格数组的行数组中每隔两个像素点数组添加一个加密元素,且在所述网格数组中是每隔两行行数组依次进行加密。优选地,在对所述网格数组进行加密的时候,在所述加密密钥中加入作为结束标志的尾部密钥,则在添加加密密钥时,将所述加密密钥与尾部密钥依次加入网格中,例如,加密密钥采用带尾部密钥的字符串123abc&,其中,尾部密钥为&。进一步优选地,所述尾部位置添加方式不限于采用加密密钥的添加方式,也可以是直接加入所述网格数组的最后一个或多个像素点数组中,但所述尾部位置一定位于所述加密密钥中最后一个加密元素所占像素点数组之后的像素点数组中。

本实施例中,所述加密方法还包括去除空白像素点数组,即将上述加密方法中添加的空白像素点数组从加密后的图片中去除,首先,根据待加密原始图片的宽和高,令加密后像素数组中行数组中像素点数组集合的长度等于待加密原始图片的宽,令加密后像素数组在列方向上的像素点数组集合的长度等于待加密原始图片的高,最后,最后截取出宽和高等于待加密原始图片的像素数组,即去除了多余的空白像素点数组。以图3为示例性说明,所述待加密原始图片添加空白像素点数组后,所述待加密原始图片的高h和宽w发生了改变,则所述待加密原始图片加密完成后,各个网格均加入了相同的头部密钥、加密密钥以及尾部密钥,则所述待加密图片加密后的像素数组为一个加密后的新二维数组,则令加密后的像素数组在x轴上行数组的长度等于待加密原始图片的宽,且在y轴方向上所有像素点数组的集合的长度等于待加密原始图片的高,然后再进行截取,即除去多余的空白像素点数组。

如图6所示,本发明实施例中介绍了一种解密方法,所述解密方法包括,首先,建立待解密图片的待解密像素数组,其次,遍历所述解密图片的待解密像素数组,查找并获取待解密像素数组中的头部位置和/或尾部位置,并根据头部位置和/或尾部位置确定任一单位网格数组;然后,依据头部位置或尾部位置,解析出所述单位网格数组中的加密元素;最后,将计算出的加密元素转为加密密钥,并与预设加密密钥进行比较,若两者一致,则解密图片为我们的原创图片,从而达到防盗用图片的目的。具体的,所述建立解密图片的原始像素数组与上述建立待加密图片的像素数组采用的原理和/或方法相同,在此不进行赘述。当遍历所述待解密图片的像素数组时,首先,采用加密算法反向查找头部位置和/或尾部位置,从而确定出一个单位网格数组,具体的,提取所述待解密像素数组中所有的像素点数组前三位元素和值的个位数数值;提取出的预设头部位置和/或预设尾部位置的个位数数值并进行处理,获取待解密图片的头部密钥和/或尾部密钥;将获取的头部密钥和/或尾部密钥与预设头部密钥和/或预设尾部密钥进行比较,确定一个或多个头部位置和/或尾部位置,并确定一个或多个单位网格数组。确定出一个或多个单位网格数组之后,选取其中的一个或多个单位网格数组,在选取出的一个或多个单位网格数组中以头部位置或尾部位置为参考点,按照加密密钥添加方式反向提取所述相应像素点数组的个位数数值,然后将提取出的所有个位数数值组成加密数组,然后将加密数组依据加密信息处理方式反向转为加密密钥,最终将获取的加密密钥与预设加密密钥进行比较。

以图5为例对解密过程进行说明,由图5可知,具有图5网格数组的图片的加密信息和加密规则为:头部位置在网格的左上角采用3x3的布置方式,且头部密钥对应的数组为[1,2,3,4,5,6,7,8,9];所述加密密钥为字符串123abc,则对应的加密数组为[0,1,0,2,0,3,1,0,1,1,1,2],且加密密钥的第一位为网格数组第一行头部位置结束后的第一位像素点数组;所述尾部位置为“&”,对应尾部密钥数组为[5,6],且尾部密钥与加密密钥的添加方式相同。从而对具有图5网格的图片进行解密时,当遍历所述图片的原始像素数组时,则可以获取待解密图片所有的像素点数组前三位和值的个位数数值,以图5网格中前三行行数组的所有像素点数组和值的个位数值为例,则为1,2,3,0,2,2,1,2,2,0;4,5,6,2,2,2,2,2,2,2;7,8,9,2,2,2,2,2,2,2;从而获取网格左上角的3x3位置的像素点数组的个位数数值为1,2,3,4,5,6,7,8,9,则满足上述所述加密规则的头部位置与头部密钥,则确定出头部位置,类似的尾部位置的获取方式将不再赘述。当拿到一个图片可以获取一个或多个头部位置和/或尾部位置,从而可以获取一个或多个单位网格数组,选取任一单位网格数组提取所述加密元素,在提取过程中,则提取规则与加密规则一致,图5中头部位置确定后,即确定出单位网格数组,依据加密密钥添加方式反向从所述网格数组第一行头部位置结束后的第一个像素点数组开始,在所述网格数组的行数组中每隔两个像素点数组,且在所述网格数组中是每隔两行行数组依次提取个位数数值,直至提取完成所有的加密元素,和/或提取出尾部密钥的加密元素后结束提取,然后,将提取出的所有加密密钥的加密元素组成加密数组,然后,将加密数组按照加密规则转化为加密密钥,从而将解密出的加密密钥与加入图片的加密密钥进行比较,具体的,解密过程中将所有的加密数字最后转化为加密密钥的处理方式与加密过程中处理加密密钥的过程为相反过程,如图5中,将加密数组为[0,1,0,2,0,3,1,0,1,1,1,2]转为数字010203101112,再进一步按照字典表将数字转为加密密钥为字符串123abc。

本实施例中,所述加密信息与加密规则可以进行自定义,但是一个加密图片的加密信息与加密规则具有唯一性,所述解密方法依据加密信息与加密规则也是唯一确定的,从而图片进行加密之后,即使图片被切割成一小部分,我们依旧可以得出加密字符串,达到防止被盗的目的。

本实施例中,图片的像素数组也可看作是由rgb三个色值组成的一维数组,则一个图片的加密、解密方法与上述所述方法同理,则不再进行赘述。

在上述方法的基础上,本发明实施例还适应性地提供了一种加密系统,如图7所示,所述加密系统依次包括实现数据连接的像素数组建立模块、像素数组处理模块、加密模块、配置模块,其中所述像素数组建立模块用于建立待加密图片的像素数组;所述像素数组处理模块用于将所述待加密图片的像素数组等分为一个或多个网格数组;所述加密模块用于在所述网格数组中均加入相同的加密信息,得到加密后的像素数组;所述配置模块用于根据加密后的像素数组,配置加密后的图片。具体的,所述像素数组建立模块还用于使得待加密像素数组包括行数组,且以四个数字组成的像素点数组为所述像素数组的最小单元;所述像素数组处理模块还用于根据所述加密信息,确定能够加入所述加密信息的单位网格数组的高度与宽度,且还用于添加空白像素点数组;所述加密模块还用于确定所述加密信息中的头部密钥、加密密钥以及尾部密钥,并根据加密规则对待加密图片进行加密;所述配置模块还用于去除已加密图片在加密过程中添加的空白像素点数组。

所述加密系统还包括用于预设加密信息与加密规则预设模块。具体的,所述预设模块预设的加密信息包括头部密钥、加密密钥和尾部密钥中的一个或组合;所述加密规则包括加密算法、加密密钥添加方式、加密信息处理方式中的一个或多个。

在上述方法的基础上,本发明实施例还适应性地提供了一种加密系统,如图8所示,所述解密系统包括实现数据连接的像素数组建立模块、获取模块、提取模块以及比较模块;其中,所述像素数组建立模块用于建立待解密图片的待解密像素数组;所述获取模块用于识别待解密像素数组中的头部位置和/或尾部位置,并根据头部位置和/或尾部位置,确定单位网格数组;所述提取模块用于根据头部位置和/或尾部位置,在所述单位网格数组中提取加密密钥;

所述比较模块用于将获取的加密密钥与预设加密密钥进行比较。

在上述方法的基础上,本发明实施例还适应性地提供了一种加密系统,如图9所示,所述系统包括至少一个处理器以及至少一个存储器;所述存储器存储执行上述所述加密方法的计算机程序,所述处理器调用存储器中的所述计算机程序以执行上述所述的加密方法。

在上述方法的基础上,本发明实施例还适应性地提供了一种解密系统,如图10所示,所述系统包括至少一个处理器以及至少一个存储器;所述存储器存储执行上述所述解密方法的计算机程序,所述处理器调用存储器中的所述计算机程序以执行上述所述的解密方法。

尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1