数据编码方法、装置、计算机设备和存储介质

文档序号:568418 发布日期:2021-05-18 浏览:26次 >En<

阅读说明:本技术 数据编码方法、装置、计算机设备和存储介质 (Data encoding method, data encoding device, computer equipment and storage medium ) 是由 夏航军 于 2020-12-30 设计创作,主要内容包括:本申请涉及数据处理技术领域,提供了一种数据编码方法、装置、计算机设备和存储介质,从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;根据基于标准的Base64编码表重新编排所得的预设Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到对应的编码数据;本申请中数据转换过程中,将第一数据转换为字节数更大的第二数据,保障数据的完整性;同时,自定义Base64编码表,使得编码后的数据不容易被破解,避免数据泄露。(The application relates to the technical field of data processing, and provides a data encoding method, a data encoding device, computer equipment and a storage medium, wherein first data with a first preset byte number is extracted from initial data to be encoded; converting the first data into second data with a second preset byte number; the second preset byte number is larger than the first preset byte number; respectively coding data corresponding to each byte in the second data according to a preset Base64 coding table obtained by rearranging a standard-based Base64 coding table to obtain corresponding coded data; in the data conversion process, the first data are converted into second data with larger byte number, so that the integrity of the data is guaranteed; meanwhile, the Base64 coding table is customized, so that the coded data is not easy to crack, and data leakage is avoided.)

数据编码方法、装置、计算机设备和存储介质

技术领域

本申请涉及数据处理的技术领域,特别涉及一种数据编码方法、装置、计算机设备和存储介质。

背景技术

Base64编码是一种可以将任意的字节数组数据,通过算法,生成只有大小写英文、数字、+、/(一共64个字符)内容表示的字符串数据。其主要作用是为了解决某些系统中只能使用ASCII字符的问题,即Base64编码是将非ASCII字符的数据转换成ASCII字符的一种方法,而且Base64特别适合在http,mime协议下快速传输数据。

然而目前标准的base64编码的方式是固定的,编码表也是固定的,这就增加了网络传输的风险,只需要截取到数据按照相应的解码方式进行解码便可以破解数据。因此,为了防止数据泄漏,需要对数据进行加密,但是数据加密一般是比较耗时,直接影响用户在App上的体验。

发明内容

本申请的主要目的为提供一种数据编码方法、装置、计算机设备和存储介质,旨在克服目前数据编码时编码数据容易破解造成数据泄露的缺陷。

为实现上述目的,本申请提供了一种数据编码方法,包括以下步骤:

获取待编码的初始数据;所述初始数据中包括多个字节数的数据;

根据从前往后的顺序,依序从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;

将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;

根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据;其中,所述预设的Base64编码表是基于标准的Base64编码表重新编排所得。

进一步地,所述第一预设字节数为三个字节,所述第二预设字节数为四个字节数;其中,每个字节中包括8个数字;

所述根据从前往后的顺序,依序从所述待编码的初始数据中提取出具有第一预设字节数的第一数据的步骤,包括:

根据从前往后的顺序,依序从所述待编码的初始数据的起始位中提取出具有三个字节的数据;

将提取出的每个字节对应的8个数字依序进行组合,得到包括24个数字的所述第一数据。

进一步地,所述将所述第一数据转换为具有第二预设字节数的第二数据的步骤,包括:

从所述第一数据的24个数字中,从前往后依序提取出6个数字,得到四组六位数;

分别在提取得到的每一组六位数的数字之前添加一个包含两个预设数字的前置数字,得到四组八位数;

将每一组八位数作为一个字节,得到包含四个字节数的所述第二数据。

进一步地,所述根据从前往后的顺序,依序从所述待编码的初始数据的起始位中提取出具有三个字节的数据的步骤之后,还包括:

若所述待编码的初始数据中剩余的字节数不足三个字节,则使用指定字符填充不足的字节数。

进一步地,所述根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据的步骤之前,还包括:

获取标准的Base64编码表;其中,所述标准的Base64编码表中包括按照顺序排列的64个字符;

获取所述第一预设字节数所表示的数字,并将所述数字作为预设个数;

在所述标准的Base64编码表结尾处,从后往前依次提取所述预设个数的字符;

将提取出的字符按照在所述标准的Base64编码表中的排序移至所述标准的Base64编码表的首位,得到重新排序的Base64编码表,作为所述预设的Base64编码表。

进一步地,所述根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到所述第二数据中的每个字节对应的编码数据的步骤之前,还包括:

获取所述待编排的数据的总字节数;

将所述总字节数除于一个第一预设数字,得到相除结果;其中,所述相除结果中包括余数;

根据所述余数,在数据库中获取与所述余数对应的Base64编码表作为所述预设的Base64编码表;其中,所述数据库中存储有对所述标准的Base64编码表进行随机编排得到的第一预设数字的Base64编码表,并建立有每个余数与所述Base64编码表的对应关系。

本申请还提供了一种数据编码装置,包括:

第一获取单元,用于获取待编码的初始数据;所述初始数据中包括多个字节数的数据;

提取单元,用于根据从前往后的顺序,依序从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;

转换单元,用于将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;

编码单元,用于根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据;其中,所述预设的Base64编码表是基于标准的Base64编码表重新编排所得。

进一步地,还包括:

第二获取单元,用于获取标准的Base64编码表;其中,所述标准的Base64编码表中包括按照顺序排列的64个字符;

第三获取单元,用于获取所述第一预设字节数对应的数,作为预设个数;

字符提取单元,用于在所述标准的Base64编码表末尾提取所述预设个数的字符;

编排单元,用于将提取出的字符按照在所述标准的Base64编码表中的排序移至所述标准的Base64编码表的首位,得到重新排序的Base64编码表,作为所述预设的Base64编码表。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请提供的数据编码方法、装置、计算机设备和存储介质,从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;根据基于标准的Base64编码表重新编排所得的预设Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据;本申请中数据转换过程中,将第一数据转换为字节数更大的第二数据,保障数据的完整性;同时,自定义Base64编码表,使得编码后的数据不容易被破解,避免数据泄露。

附图说明

图1是本申请一实施例中数据编码方法步骤示意图;

图2是本申请一实施例中数据编码装置结构框图;

图3为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请一实施例中提供了一种数据编码方法,包括以下步骤:

步骤S1,获取待编码的初始数据;所述初始数据中包括多个字节数的数据;

步骤S2,根据从前往后的顺序,依序从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;

步骤S3,将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;

步骤S4,根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据;其中,所述预设的Base64编码表是基于标准的Base64编码表重新编排所得。

在本实施例中,上述数据编码方法用于对数据进行自定义编码,本实施例中的方法不仅实现对数据的编码,同时又对数据进行了一定程度的加密,保证了接收到的数据的完整和数据的安全。

具体地,如上述步骤S1所述的,待编码的初始数据为编码之前的数据,通常该初始数据不便于直接传输,如直接进行传输容易造成数据泄露。因此,需要对其进行编码处理之后再进行数据的传输。上述初始数据中包括多个字节,每个字节中包括8bit数据,即8个数字。

如上述步骤S2所述的,按照上述待编码的数据中从前往后的顺序,依序从所述待编码的初始数据中提取出第一预设字节数的数据组成一组第一数据;即从待编码的初始数据中提取出指定字节数的数据,例如,可以提取出三个字节数的数据组成上述第一数据。

如上述步骤S3所述的,将上述第一数据转换为第二数据,且第二数据的字节数大于第一数据的字节数,不仅可以在第二数据中包括第一数据的所有信息,保障数据的完整性,而且可以保障第一数据与第二数据不同,相当于一个简单的数据转换过程,提高了数据的安全性。例如,在一个实施例中,可以将三个字节数的第一数据转换为四个字节数的第二数据;又或者是,将两个字节数的第一数据转换为四个字节数的第二数据。

如上述步骤S4所述的,在得到上述第二数据之后,该第二数据中包括第二预设字节数的数据,对该第二预设字节数的数据分别进行编码,则得到了上述第二数据中的每个字节对应的编码数据。即实现了对数据的编码过程,相当于数据的加密过程,避免数据泄露,提升数据安全性。将第二数据中各个字节对应的编码数据组合得到第三数据即为所述第一数据编码后的数据,将各个第一数据编码后的数据进行组合,则得到上述初始数据编码后的数据。

可以理解的是,在本实施例中,对上述第二数据进行编码时,所使用的预设Base64编码表是基于标准的Base64编码表重新编排所得;标准的base64编码表是A--Z,a--z,0--9,+,/等64个字符,即该预设的Base64编码表也是采用64个字符进行编码;但是该编码表中的字符顺序与标准的Base64编码表不同,可以完全打乱这64个字符甚至可以替换掉这64个字符,其它用户无法使用标准的Base64编码表进行解码得到数据。必须在获取到本实施例中预设的Base64编码表之后,才可以进行解码得到编码前的数据。在本实施例中,采用上述的数据编码过程不仅保障数据的完整性,而提高了数据的安全性,避免数据被轻易窃取、破解。

在一实施例中,所述第一预设字节数为三个字节,所述第二预设字节数为四个字节数;其中,每个字节中包括8个数字;

所述根据从前往后的顺序,依序从所述待编码的初始数据中提取出具有第一预设字节数的第一数据的步骤S2,包括:

步骤S21,根据从前往后的顺序,依序从所述待编码的初始数据的起始位中提取出具有三个字节的数据;

步骤S22,将提取出的每个字节对应的8个数字依序进行组合,得到包括24个数字的所述第一数据。

在本实施例中,每一次从待编码的初始数据中提取出三个字节的数据,而每个字节的数据中均包括有8个数字。例如提取出的三个字节包括的数字分别为01234567、01234567、01234567,将上述三个字节包括的数字进行依序组合,则得到上述第一数据。上述依序组合指的是将上述三个字节包括的数字按照上述三个字节在上述初始数据中原顺序进行组合,例如,依序组合的得到的上述第一数据为012345670123456701234567。该第一数据中包括3*8=24个数字。

在一实施例中,所述将所述第一数据转换为具有第二预设字节数的第二数据的步骤S3,包括:

步骤S31,从所述第一数据的24个数字中,从前往后依序提取出6个数字,得到四组六位数;

步骤S32,分别在提取得到的每一组六位数的数字之前添加一个包含两个预设数字的,得到四组八位数;

步骤S33,将每一组八位数作为一个字节,得到包含四个字节数的所述第二数据。

在本实施例中,将第一数据转换为第二数据,其字节数由三转换为四;可以理解的是,将上述第一数据中包括的24个数字分配至四个字节中,则转换后的每个字节中包括上述第一数据中的6个数字;由于每个字节需要8个数字,因此,需要添加两个数字,即上述前置数字,为了不影响上述数据的正确表达,上述前置数字通常为“00”;在本实施例中,经过上述转换得到的四个字节对应的数字分别为00012345、00670123、00456701、00234567;上述转换得到的第二数据则为00012345006701230045670100234567。在其他实施例中,也可以不是平均分配,例如转换后的四个字节中依次包括上述第一数据中的7、7、7、3个数字,或者转换后的四个字节中依次包括上述第一数据中的7、7、5、5个数字,在此不进行赘述。

在一实施例中,所述根据从前往后的顺序,依序从所述待编码的初始数据的起始位中提取出具有三个字节的数据的步骤S21之后,还包括:

步骤S2a,若所述待编码的初始数据中剩余的字节数不足三个字节,则使用指定字符填充不足的字节数。

在本实施例中,若待编码的初始数据中剩余的字节数不足三个字节,例如只剩一个字节或者两个字节时,则可以使用指定字符进行填充,指定字符可以为“=”,其作为填充字符。

在一实施例中,所述根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据的步骤S4之前,还包括:

步骤S41,获取标准的Base64编码表;其中,所述标准的Base64编码表中包括按照顺序排列的64个字符;

步骤S42,获取所述第一预设字节数所表示的数字,并将所述数字作为预设个数;

步骤S43,在所述标准的Base64编码表结尾处,从后往前依次提取所述预设个数的字符;

步骤S44,将提取出的字符按照在所述标准的Base64编码表中的排序移至所述标准的Base64编码表的首位,得到重新排序的Base64编码表,作为所述预设的Base64编码表。

在本实施例中,在对上述标准的Base64编码表重新编排时,只需要将上述标准的Base64编码表末尾的几个字符移至标准的Base64编码表的首位,则可以打乱标准的Base64编码表中的排序。同时,为了便于记录上述编排规则,在本实施例中,提取出标准的Base64编码表末尾字符的个数与上述第一预设字节数对应的数字相同,例如,上述第一预设字节数对应的数字为3,则提取标准的Base64编码表末尾3个字符,移至标准的Base64编码表最前端。这便使得,不需要记录复杂的编排规则,上述编排规则也可以与上述第一预设字节数进行关联,即使得只需要记住一个数字即可。

在一实施例中,所述根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到所述第二数据中的每个字节对应的编码数据的步骤S4之前,还包括:

步骤S401,获取所述待编排的数据的总字节数;

步骤S402,将所述总字节数除于一个第一预设数字,得到相除结果;其中,所述相除结果中包括余数;

步骤S403,根据所述余数,在数据库中获取与所述余数对应的Base64编码表作为所述预设的Base64编码表;其中,所述数据库中存储有对所述标准的Base64编码表进行随机编排得到的第一预设数字的Base64编码表,并建立有每个余数与所述Base64编码表的对应关系。

在本实施例中,预先对上述标准的Base64编码表进行随机编排得到第一预设数字的Base64编码表。例如,第一预设数字为3,则得到3个Base64编码表。同时将上述第一预设数字作为分母时得到的余数为0,1……N,其中N为第一预设数字减去1;例如,第一预设数字为3时,余数则为0,1,2。进而建立上述余数与Base64编码表的对应关系,即余数0,1,2分别对应不同的Base64编码表。

在获取上述预设的Base64编码表时,只需要获取待编排的数据的总字节数,将所述总字节数除于上述第一预设数字,得到余数,便可以根据上述余数获取到上述预设的Base64编码表。即在本实施例中,不同字节数的数据,所采用的预设的Base64编码表也不同;增加了解码难度,避免数据的泄露。

在一实施例中,上述数据编码方法,还包括:

将所述预设的Base64编码表、初始数据、第三数据存储于区块链中。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

参照图2,本申请一实施例中还提供了一种数据编码装置,包括:

第一获取单元10,用于获取待编码的初始数据;所述初始数据中包括多个字节数的数据;

提取单元20,用于根据从前往后的顺序,依序从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;

转换单元30,用于将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;

编码单元40,用于根据预设的Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到编码数据;其中,所述预设的Base64编码表是基于标准的Base64编码表重新编排所得。

在一实施例中,所述数据编码装置,还包括:

第二获取单元,用于获取标准的Base64编码表;其中,所述标准的Base64编码表中包括按照顺序排列的64个字符;

第三获取单元,用于获取所述第一预设字节数所表示的数字,并将所述数字作为预设个数;

字符提取单元,用于在所述标准的Base64编码表结尾处,从后往前依次提取所述预设个数的字符;

编排单元,用于将提取出的字符按照在所述标准的Base64编码表中的排序移至所述标准的Base64编码表的首位,得到重新排序的Base64编码表,作为所述预设的Base64编码表。

在一实施例中,上述数据编码装置,还包括:

第四获取单元,用于获取所述待编排的数据的总字节数;

相除单元,用于将所述总字节数除于一个第一预设数字,得到相除结果;其中,所述相除结果中包括余数;

第五获取单元,用于根据所述余数,在数据库中获取与所述余数对应的Base64编码表作为所述预设的Base64编码表;其中,所述数据库中存储有对所述标准的Base64编码表进行随机编排得到的第一预设数字的Base64编码表,并建立有每个余数与所述Base64编码表的对应关系。

在一实施例中,所述第一预设字节数为三个字节,所述第二预设字节数为四个字节数;其中,每个字节中包括8个数字;

上述提取单元20,具体用于:

根据从前往后的顺序,依序从所述待编码的初始数据的起始位中提取出具有三个字节的数据;

将提取出的每个字节对应的8个数字依序进行组合,得到包括24个数字的所述第一数据。

在一实施例中,所述转换单元30,具体用于:

从所述第一数据的24个数字中,从前往后依序提取出6个数字,得到四组六位数;

分别在提取得到的每一组六位数的数字之前添加一个包含两个预设数字的前置数字,得到四组八位数;

将每一组八位数作为一个字节,得到包含四个字节数的所述第二数据。

在一实施例中,所述提取单元20还用于:

若所述待编码的初始数据中剩余的字节数不足三个字节,则使用指定字符填充不足的字节数。

在本实施例中,上述装置实施例中的各个单元的具体实现方式,请参照上述方法实施例中所述,在此不再进行赘述。

参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储编码表等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据编码方法。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据编码方法。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。

综上所述,为本申请实施例中提供的数据编码方法、装置、计算机设备和存储介质,从所述待编码的初始数据中提取出具有第一预设字节数的第一数据;将所述第一数据转换为具有第二预设字节数的第二数据;其中,所述第二预设字节数大于所述第一预设字节数;根据基于标准的Base64编码表重新编排所得的预设Base64编码表,分别对所述第二数据中的每个字节对应的数据进行编码,得到对应的编码数据;本申请中数据转换过程中,将第一数据转换为字节数更大的第二数据,保障数据的完整性;同时,自定义Base64编码表,使得编码后的数据不容易被破解,避免数据泄露。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于哈希函数的藏文排序方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!