CN114928363A - 数据处理方法、装置、计算机设备和存储介质 - Google Patents
数据处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114928363A CN114928363A CN202210571168.2A CN202210571168A CN114928363A CN 114928363 A CN114928363 A CN 114928363A CN 202210571168 A CN202210571168 A CN 202210571168A CN 114928363 A CN114928363 A CN 114928363A
- Authority
- CN
- China
- Prior art keywords
- shared
- character
- information
- array
- target
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及一种数据处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取业务场景的待分享信息;根据业务场景的场景特征确定压缩的目标字符范围;对目标字符范围内的各字符进行排序,得到排序后的字符数组;对待分享信息进行转换,得到转换数据;按照指定顺序,依次从转换数据中取对应数量的目标位,并从字符数组中确定对应的字符,得到压缩数据。采用本方法能够避免数据压缩后长度变长以及数据无法显示等情况无法满足业务场景需求,确保了压缩后数据的完整性。
Description
技术领域
本申请涉及大数据分析技术领域,特别是涉及一种数据处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在大数据应用场景中,随着数据的量级不断扩大,对数据的存储、传输以及数据的获取带来很大的挑战。为了提高数据存储、传输以及数据的获取效率,在确保数据完整的前提下,需要对数据进行压缩处理。
对于数据的压缩,现有的数据压缩采用现有Huffman Coding、zip、rar等压缩算法对数据进行压缩,这些压缩算法对于较短的数据,编码后结果长度会变大。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现数据压缩,并且压缩结果长度小于压缩前的长度,方便通过文字对处理结果进行发送或分享的数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据处理方法。所述方法包括:
获取业务场景的待分享信息;
根据所述业务场景的场景特征确定压缩的目标字符范围;
对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
对所述待分享信息进行进制转换,得到目标进制数组;
根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。在其中一个实施例中,所述根据所述业务场景的场景特征确定压缩的目标字符范围,包括:
根据所述业务场景特征从多种字符范围中确定候选字符范围;
获取所述候选字符范围的支持位数,以及所述待分享信息中的字符串位数;
根据各所述字符范围的支持位数和所述字符串位数,确定以各所述候选字符范围压缩所述待分享信息需要占用的存储容量;
根据各所述存储容量从所述候选字符范围中确定压缩的目标字符范围。
在其中一个实施例中,所述对所述待分享信息进行转换,得到转换数据,包括:
确定所述待分享信息的目标进制;
通过所述待分享信息除以所述目标进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
在其中一个实施例中,所述方法还包括:
获取与所述目标进制数组的元素数量相同的盐值数组;
依次根据所述盐值数组中的每个盐值对所述目标进制数组中对应的目标进制数进行偏移处理,得到偏移处理后的目标进制数组。
在其中一个实施例中,所述对所述待分享信息进行转换,得到转换数据,包括:
确定所述待分享信息的目标进制和所述加密进制;所述目标进制为所述加密进制的n次幂;
通过所述待分享信息除以所述加密进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;
对所述待加密进制数组进行加密,得到加密进制数组;
依次从所述加密进制数组取n位,得到目标进制数组。
在其中一个实施例中,所述获取业务场景的待分享信息,包括:
当所述待分享信息的字符串类型包括数字类和非数字类时,获取所述待分享信息中非数学类的字符串;
将所述非数学类的字符串转化为预设数字字符串,并将所述预设数字字符串与所述待分享信息中数字类的字符串进行拼接,得到拼接字符串;
根据所述拼接字符串更新所述待分享信息。
第二方面,本申请还提供了一种数据处理装置。所述装置包括:
信息获取模块,用于获取业务场景的待分享信息;
字符范围确定模块,用于根据所述业务场景的场景特征确定压缩的目标字符范围;
字符排序模块,用于对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
进制转换模块,用于对所述待分享信息进行进制转换,得到目标进制数组;
字符压缩模块,用于根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
在其中一个实施例中,所述字符范围确定模块还用于根据所述业务场景特征从多种字符范围中确定候选字符范围;
所述装置还包括:
存储容量确定模块,用于获取所述候选字符范围的支持位数,以及所述待分享信息中的字符串位数;
根据各所述字符范围的支持位数和所述字符串位数,确定以各所述候选字符范围压缩所述待分享信息需要占用的存储容量;
字符确定模块还用于根据各所述存储容量从所述候选字符范围中确定压缩的目标字符范围。
在其中一个实施例中,所述进制转换模块还用于确定所述待分享信息的目标进制;
通过所述待分享信息除以所述目标进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
在其中一个实施例中,进制转换模块还用于确定所述待分享信息的目标进制和加密进制;所述目标进制为所述加密进制的n次幂;
通过所述待分享信息除以所述加密进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;
所述装置还包括:
加密模块,用于对所述待加密进制数组进行加密,得到加密进制数组;
每次从所述加密进制数组取n位,得到目标进制数组。
在其中一个实施例中,所述装置还包括:
字符串类型确定模块,用于当所述待分享信息的字符串类型包括数字类和非数字类时,获取所述待分享信息中非数学类的字符串;
字符串拼接模块,用于将所述非数学类的字符串转化为预设数字字符串,并将所述预设数字字符串与所述待分享信息中数字类的字符串进行拼接,得到拼接字符串;
更新模块,用于根据所述拼接字符串更新所述待分享信息。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取业务场景的待分享信息;
根据所述业务场景的场景特征确定压缩的目标字符范围;
对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
对所述待分享信息进行转换,得到目标进制数组;
根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取业务场景的待分享信息;
根据所述业务场景的场景特征确定压缩的目标字符范围;
对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
对所述待分享信息进行转换,得到目标进制数组;
根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取业务场景的待分享信息;
根据所述业务场景的场景特征确定压缩的目标字符范围;
对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
对所述待分享信息进行转换,得到目标进制数组;
根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
上述数据处理方法、装置、计算机设备、存储介质和计算机程序产品,根据业务场景的场景特征和存储容量确定业务场景中待分享信息压缩后的目标字符范围;对目标字符范围内的各字符进行排序,得到排序后的字符数组;对待分享信息进行进制转换,得到目标进制数组;根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符得到压缩数据。该方法在对待分享信息进行压缩前,根据业务场景的场景对待分享信息进行分析,从多种字符范围中确定满足业务场景的实际需求压缩的目标字符范围;基于目标字符范围。对待分享信息进行进制转换,直接得到目标进制数组,可以支持任意进制的转换,满足任意类型业务场景的需求,提高进制转换的通用性。对待分享信息进行进制转换后,根据得到目标进制数组从排序后的字符数组确定对应的字符,完成待分享信息的压缩,得到长度小于待分享信息的长度且为可见字符的压缩数据。对压缩数据可以直接进行分享或发送,避免数据长度过长导致在分享过程中数据无法完整显示,满足业务场景需求以及确保了压缩数据完整显示。
附图说明
图1为一个实施例中数据处理方法的流程示意图;
图2为一个实施例中目标字符范围确定方法的流程示意图;
图3为另一个实施例中数据处理方法的流程示意图;
图4为另一个实施例中数据处理方法的流程示意图;
图5为一个实施例中数据处理装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
需要说明的是,本申请技术方案中对数据(包括但不仅限于待分享信息和压缩数据)的获取、存储、使用、处理等均符合国家法律法规的相关规定。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种数据处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,获取业务场景的待分享信息。
其中,待分享信息是指与业务相关的信息,待分享信息可以中包括分享发起对象信息、分享链接信息和被分享对象信息等。待分享信息可以是数字,也可以是字母,或数字和字母的组合等,在此不做限定。本实施例中,以待分享信息为正整数字为例进行说明。待分享信息可以理解为待分享字符。
业务场景包括分享口令码、活动码等业务场景。在业务场景中,需要将待分享信息转化为较短的可见字符,以短信、微信消息、链接等方式分享或发送给用户。可见字符包括大写字母A-Z,小写字母a-z,数字0-9,常用标点符号和常用汉字等。
具体地,响应终端上触发的分享指令,获取业务场景中的待分享信息,并对待分享信息进行压缩处理。
步骤104,根据业务场景的场景特征确定压缩的目标字符范围。
其中,不同的业务场景具有不同的场景特征,场景特征包括键盘手动输入、固定字符长度(固定字符长度是指压缩后的字符长度小于压缩前的字符长度)。例如,日常中常见的可见字符有中文、数字、大写字母、小写字母等,常见的base64编码,就是用数字、大写字母、小写字母,再加上/,+这2个符号作为编码后的字符范围。
在另一个业务场景中,分享信息需要阅读后通过键盘手动输入,考虑字符之间的相似度,避免在阅读时引起歧义,考虑删除容易产生歧义的字符,比如0(零),O(大写字母O),I(大写的字母i)and l(小写的字母L),另外考虑删除键盘输入比较麻烦的字符,比如符号/,+,在base64字符的基础上,去除以上字符,剩余58个字符,如下所示
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz。
考虑业务使用的地区,比如在地区A使用,可以使用常见中文汉字作为目标字符范围,由于汉字总数比数字、字符个数多很多,选择汉字作为目标字符范围,可以很大程度上缩短压缩后目标字符长度。
进一步地,场景特征包括压缩后字符长度小于压缩前的字符长度(即压缩后,待分享信息在视觉上长度变短),可以理解的是在特定的业务场景中,压缩后字符的长度也可以是固定的。
在业务场景中,用户终端需要在输入框中输入终端分享的分享信息,其中,输入框的字符长度是固定的,当待分享信息长度大于输入框的字符长度时,导致待分享信息无法完整输入。例如,在业务场景A中,压缩后字符长度都为7。又如,考虑到压缩后的字符长度小于压缩前的待分享信息的长度,优先使用大写字母A-Z,小写字母a-z,数字0-9,英文标点符号,特殊标点符号等,拉丁文补充、扩展,例如等,这些可见字符在视觉上宽度比较小,看起来只有中文的一半。例如,123456789012345678压缩后为cs8MZdLZbY,在视觉上长度缩短。
具体地,根据业务场景的场景特征确定压缩的目标字符范围。进一步地,可以理解的是,在根据业务场景的场景特征确定压缩的目标字符范围的基础上,结合终端(例如,计算机)的处理性能,即计算机一般以2进制作为基础,一个2进制是一位(bit),在确定目标字符范围的时,目标字符范围的结果字符集最好等于2的指数运算结果,或在预设差值范围内,避免存储资源的浪费,提高存储资源的利用率。比如base64的字符集64个,正好为26。中文字符4E00-9FA5共20902个,214=16384<20902,即可以取部分中文字符作为目标字符方位,每个中文字符对应14位二进制。部分计算机、硬件,按字节(byte)处理,一个字节为8位,一共28=256种情况,可以考虑在base64的字符集64个基础上,增加拉丁文扩展特殊标点符号等,增加压缩结果字符集到256个。例如在base64的64个字符基础上,增加拉丁补充00C0-00FF共64个,再增加上拉丁补充0100-017F共128个,得到256个可见字符,如下所示:
可选地,在一个实施例中,还提供了在压缩(编码)过程中加密的方案,以使用AES等基于二进制的加密算法为例来说,按该在压缩(编码)过程中进行加密时,也需要按上述将目标字符范围确定为2的倍数。使用支持非二进制的加密算法则不受此限制。
进一步地,在一个实施例中,提高了一种确定目标字符范围的方法,如图2所示,包括以下步骤:
步骤202,根据业务场景特征从多种字符范围中确定候选字符范围。
其中,字符范围包括大写字母A-Z,小写字母a-z,数字0-9,常用标点符号和常用汉字等,这里汉字以Unicode编码中的基本汉字4E00-9FA5为准,共20902个。
具体地,根据业务场景特征从多种字符范围中确定候选字符范围,即可以满足业务场景的需求。例如,在活动码分享的业务场景中,待分享信息为18位数字,根据活动码分享的业务场景的业务场景特征可以确定候选字符范围为字符集64和中文字符集。
步骤204,获取候选字符范围的支持位数,以及待分享信息中的字符串位数。
其中,候选字符范围的支持位数是指候选字符范围可表示的个数,即可以理解为候选字符范围所能支持的位数。例如,对于18位数字的待分享信息,共有1×1018种情况,候选字符范围为字符集64,6410≈1.15×1018>1×1018,即对于18位数字的待分享信息,可以压缩为10位字符,结果字符范围为64个可见字符。又如,对于18位数字的待分享信息,共有1×1018种情况,候选字符范围为中文字符集,209024≈1.9×1017,209025≈3.99×1021,即用4个中文汉字只能表示17位数字,不够表示18位数字,则需要加一个汉字,用5个中文汉字,209025≈3.99×1021。
步骤206,根据各字符范围的支持位数和字符串位数,确定以各候选字符范围压缩待分享信息需要占用的存储容量。
具体地,根据候选字符范围所能支持的位数和待分享信息中的字符串位数,分别以各候选字符范围压缩待分享信息需要占用的存储容量和压缩该待分享信息的字符位数。其中,存储容量是根据字符位数相关的,例如,若是考虑候选字符范围使用中文汉字作为结果字符,209024≈1.9x1017,209025≈3.99x1021,即用4个中文汉字只能表示17位数字,不够表示18位数字,加一个汉字,用5个中文汉字,结果大于1×1018太多,浪费存储资源。从209027≈1.74x1030可以看出,用7个中文汉字表示30位数字比较合适,即原始数据是30位数字的待分享信息时,压缩为7个中文汉字,避免了存储资源的浪费。
根据上述规则,部分字符范围如下所示:
6410≈1.15×1018>1×1018,即对于18位数字,压缩为10位字符,目标字符有64个;588≈1.28×1014,即对于14位数字,压缩为8位字符,目标字符有58个;209024≈1.9×1017,即对于17位数字,压缩为4位字符,目标字符有20902个;209027≈1.74×1030,即对于30位数字,压缩为7位字符,目标字符有20902个。
需要注意的是,上述只是压缩前数字可表示的范围,和压缩目标字符串能支持的范围,尽量接近避免资源浪费的推荐数值,理论上只要目标字符串能支持的范围大于压缩前的范围就可以实现压缩(编码)。
这里也体现了步骤104中压缩后视觉长度,比如18位数字压缩为10位字符,目标字符串为base64字母+数字+符号组合,如果将18位数字压缩为5位中文汉字,一个中文汉字的宽度在视觉上跟2个数字或字母差不多,即10个字母+数字+符号组合,跟5个中文汉字在视觉长度(宽度)上差不多。但是对于17位数字,可以压缩为4个中文汉字,如果压缩为字母+数字+符号组合,则需要10个字符,4个中文汉字在视觉长度(宽度)上是小于10个字母+数字+符号组合,在一些有严格要求的使用场景,更小的视觉长度(宽度)具有更大的优势。
步骤208,根据各存储容量从候选字符范围中确定压缩的目标字符范围。
具体地,根据以各候选字符范围压缩待分享信息需要占用的存储容量,确定各存储容量的利用率,确定存储容量的利用率最大对应的候选字符范围为确定压缩的目标字符范围。
上述确定目标字符范围的方法中,通过根据业务场景特征从多种字符范围中确定候选字符范围;获取候选字符范围的支持位数,以及待分享信息中的字符串位数;根据各字符范围的支持位数和字符串位数,确定以各候选字符范围压缩待分享信息需要占用的存储容量;根据各存储容量从候选字符范围中确定压缩的目标字符范围。通过根据业务场景特征对待分享信息的字符位数、候选字符范围所能支持的位数以及存储资源等多维度方向进行分析,需要使用的目标字符范围,确保了字符范围的适用性以及避免存储资源浪费。
步骤106,对目标字符范围内的各字符进行排序,得到排序后的字符数组。
其中,目标字符范围至少包括常见中文汉字、base64字符,以及对base64字符去除歧义字符的58个目标字符中任意一种,去除歧义字符的58个目标字符即去除相似的字符,例如,大写字母O和数字0相似。常见中文汉字可以是Unicode编码4E00-9FA5,共20902个。base64字符可以是:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/。对base64字符去除歧义后的58个目标字符可以是:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz。
具体地,根据业务场景的场景特征确定目标字符范围,对目标字符范围内的各目标字符按照指定顺序进行排序,得到排序后的字符数组。例如,在分享口令码的业务场景中,待分享信息为123456789012345678,根据业务场景的键盘手动输入和压缩后字符长度变短的场景特征,确定待分享信息的目标字符范围为A-Z、a-z、0-9、+、/。对目标字符范围内的各字符进行排序,得到排序后的字符数组为:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/。
步骤108,对待分享信息进行转换,得到目标进制数组。
其中,目标进制可以是任意进制,例如,目标进制可以是二进制,可以是64进制,还可以是20902进制等。本实施例中的目标进制是根据实际的应用场景来确定的。
具体地,确定待分享信息的目标进制数;通过待分享信息除以目标进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到高低位反转的目标进制数组。也就是说,确定待分享信息要转换的目标进制,将待分享信息除以目标进制,得到余数是第一个低位的值,将商继续除以目标进制,得到余数是第二低位的值,直到得到的商小于1,将先得到的余数排在前,后面得到的余数依次往后排列,得到低位在前,高位在后的进制转换结果,得到高低反转的目标进制数组。
以目标进制为20902进制说明,待分享信息为123456789012345678901234567890,将原始数据除以20902,余数是第1个低位的值,商送入下一步继续处理;将上一步得到的商继续除以20902,余数是第2个低位的值,商送入下一步继续处理;重复上述步骤直到商小于1;依次得到的余数即是进制转换后的值,将先得到的余数排在前面,后得到的余数依次往后排列,即可得到低位在前,高位在后的进制转换结果,不用额外进行反转操作。原始数据经过进制转换后的结果为210,622,143,18354,14202,8990,14804。
可选地,在一个实施例中,根据业务场景需求,在获得目标进制数组之前,需将待分享信息转换为二进制,按照指定顺序依次从二进制中获取对应数量的目标位,得到目标进制数组,目标位根据目标进制和二进制之间满足的次幂来确定。即将待分享信息转换为二进制,得到转化后的二进制数组,将转换后的结果高低位反转。检测高低位反转后的二进制数组是否存在缺失的位数,若存在缺失的位数,则在结尾补齐缺失的位数,无缺失则无需补齐。其中,对待分享信息进行压缩是从前往后处理的,而数字的有效信息是从低位到高位的,与压缩的顺序相反,故需要将高低位反转。进一步地,高低位反转变换了数字顺序,相当于简单的混淆,增加了安全性防止被恶意攻击。
例如,待分享信息123456789012345678转化为二进制后为
110110110100110110100101110100110001100001111001101001110反转后得到反转后为011100101100111100001100011001011101001011011001011011011。其中,6410=260,即10位64进制等于60位2进制。例如,上文反转后为57位,则需在结尾补充3个0,补充后为:
011100101100111100001100011001011101001011011001011011011000。从二进制数组中依次取六位,得到对应的目标进制数组。
步骤110,根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符,得到压缩数据。
其中,指定顺序是指预先确定的顺序,按照指定顺序读取转换数据,可以提高数据压缩的准确性。其中,压缩数据为可见字符,用于进行转发、分享等。字符数组中每个字符存在对应的数值。压缩数据的字符长度小于待分享信息的字符长度。
具体地,根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符,得到压缩数据。
可选地,在一个实施例中,将待分享信息转换为可识别的二进制,得到转化后的二进制数组,将转换后的结果高低位反转,得到高低位反转后的二进制。检测高低位反转后的二进制数组是否存在缺失的位数,若存在缺失的位数,则在结尾补齐缺失的位数,无缺失则无需补齐。确定每一个字符位数在高低位反转后的二进制中对应数量的目标位。根据字符位数依次从转换数据中取对应数量的目标位,并从字符数组中确定对应的字符,得到压缩数据。
例如,在分享口令码的业务场景中,待分享信息为123456789012345678,根据业务场景的键盘手动输入和压缩后字符长度变短的场景特征,确定待分享信息的目标字符范围为A-Z、a-z、0-9、+、/。对于18位数字的待分享信息,共有1×1018种情况,6410≈1.15×1018>1×1018,即对于18位数字的待分享信息,可以压缩为10位字符,对目标字符范围内的各字符进行排序,得到排序后的64个可见字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/。
待分享信息123456789012345678转化为二进制后为
110110110100110110100101110100110001100001111001101001110反转后得到反转后为011100101100111100001100011001011101001011011001011011011。其中,6410=260,即10位64进制等于60位2进制。例如,上文反转后为57位,则需在结尾补充3个0,补充后为:
011100101100111100001100011001011101001011011001011011011000。取对应的位,找到与之对应排序好的目标字符范围中的字符,从前往后依次处理,得到的结果即为压缩结果。例如,补齐后为60位二进制,每次取6位,对应到结果字符范围64个中对应的顺序。第一个6位二进制为011100,按顺序应取结果字符范围中的第29个,即c。依次处理完所有位数后,结果为cs8MZdLZbY,即123456789012345678压缩后结果为cs8MZdLZbY。
可选地,在一个实施例中,还可以将压缩数据以预设形式发送至用户终端,其中,所述预设形式包括短信、链接中至少一种。用户终端在接收到压缩数据时,对压缩数据进行解压处理,得到待分享信息,根据待分享信息进行业务处理。通过对待分享信息进行压缩处理,确保待分享信息的安全性,避免待分享信息泄露以及通过压缩缩短待分享信息的长度,避免待分享信息多长导致数据遗漏等情况。
上述数据处理方法中,根据业务场景的场景特征和存储容量确定业务场景中待分享信息压缩后的目标字符范围;对目标字符范围内的各字符进行排序,得到排序后的字符数组;对待分享信息进行进制转换,得到目标进制数组,支持任意目标进制的转换,满足任意类型业务场景的需求,进而提高进制转换的通用性;根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符,得到压缩数据。在对待分享信息进行压缩前,根据业务场景的场景特征和存储容量对待分享信息进行分析,得到满足业务场景的实际需求压缩的目标字符范围,根据压缩的目标字符范围对待分享信息进行压缩,得到长度小于待分享信息字符长度且为可见字符的压缩数据,,避免数据压缩后长度变长导致数据无法完整显示等情况,确保压缩数据显示的完整性以及便于压缩数据的分享和转发。
在另一个实施例中,如图3所示,提供了一种数据处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤302,获取业务场景的待分享信息。
步骤304,根据业务场景的场景特征确定压缩的目标字符范围。
步骤306,确定待分享信息的目标进制。
其中,目标进制是根据确定的目标字符范围来确定的。
步骤308,通过待分享信息除以目标进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
具体地,通过待分享信息除以目标进制数,得到余数和商;将余数作为第1个低位的值,以及将商更新所述待分享信息,执行所述通过所述待分享信息除以所述加密进制数,得到第二余数和第二商步骤,直到所述商小于1,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
例如,当待分享信息为123456789012345678901234567890共30位数字时,确定目标字符范围为常见中文汉字,Unicode编码4E00-9FA5共20902个,对目标字符进行排序,这里按照4E00-9FA5正常顺序。通过待分享信息除以目标进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,即将原始数据除以20902,余数是第1个低位的值,商送入下一步继续处理;将上一步得到的商继续除以20902,余数是第2个低位的值,商送入下一步继续处理;执行将原始数据除以20902,余数是第1个低位的值,商送入下一步继续处理步骤,直到商小于1,依次得到的余数即是进制转换后的值,将先得到的余数排在前面,后得到的余数依次往后排列,即可得到低位在前,高位在后的进制转换结果,不用额外进行反转操作。经过进制转换后的结果为210,622,143,18354,14202,8990,1480在排序号的目标字符范围中依次取进制转换后对应的字符,得到压缩结果,注意进制转换后,每位的范围是0-20901,目标字符有第1-20902个,对应上需要偏移1,进制转换结果某位为0时,取目标字符范围中的第1个。如上述压缩(编码)结果为“仒偮亏閲蕺焞又”。
当待分享信息为123456789012345678901234567890共30位数字时,确定目标字符范围为压缩为4E00-9FA5常见中文汉字,结果为:“仒偮亏閲蕺焞又”共7个中文汉字,20902进制高低位反转数组为[210,622,143,18354,14202,8990,1480]。当待分享信息为123456789012345678901234567890共30位数字时,确定目标字符范围为压缩为base64字符,结果为:“SrwPO5O4zNs9PkujB”共17个字符,64进制高低位反转数组为[18,43,48,15,14,57,14,56,51,13,44,61,15,36,46,35,1]。又如,当待分享信息为123456789012345678901234567890共30位数字时,确定目标字符范围为去除歧义后的58个目标字符,结果为:“sTEzfCaaDhr1mTcX8”共17个字符,58进制高低位反转数组为[50,26,13,57,38,11,33,33,12,40,49,0,44,26,35,30,7]。
可以理解的是,压缩和解压为的执行步骤相反,处理的原理相同,以123456789012345678901234567890为例进行说明,获取已排序好的目标字符范围,从压缩结果中依次取字符,确定字符在已排序好的目标字符范围的第几个,第几个这个数据即是20902进制的每位。依次取压缩结果中的每个字符,得到高低位反转的20902进制数据210,622,143,18354,14202,8990,1480将20902进制转化为10进制,具体步骤为:根据高低位,乘以20902的几次幂;依次相加得到结果即210×209020+622×209021+143×209022+.........=123456789012345678901234567890。
可选地,在一个实施例中,若存在压缩数据位数缺少的情况,根据业务场景的需求进行补齐,确保压缩数据的准确性这里的补齐可以但不仅限于是对进制转换后的转换结果进行补齐。例如123456789012345678共18位数字压缩为58个目标字符结果为“R8H76Wo2dH”共10个字符。按位数计算5810≈4.3×1017<1×1018,5811≈2.49×1019>1×1018,压缩结果应为11位,这是因为123456789012345678这18位数字并不是18位数字的最大值,如果换成999999999999999999这18位数字压缩为58个目标字符,结果就会为“agosKJoedK3”共11个字符。123456789012345678,在58进制高低位反转数组为[24,7,16,6,5,29,46,1,36,16],得到结果为:“R8H76Wo2dH”共10个字符,比预计的11位字符缺失一位,可以在高低位反转数组[24,7,16,6,5,29,46,1,36,16]的最后一位16后面补齐0至11位,得到[24,7,16,6,5,29,46,1,36,16,0],再将补齐后数组转换为压缩结果得到“R8H76Wo2dH1”。
又如,000000000000000001也是18位数字,压缩后结果只有1个字符;大多数业务场景中000000000000000001会被写作1,而不是完整的18位数字,即对于这种业务场景本来就是可以缺少位数的。但是部分业务场景还是会要求完整位数,比如车牌号码5位数字部分,对于1号车牌,会写做“某A00001”,而不是“某A1”。如果是18位数字的场景,就是000000000000000001,这时就应该按上述方法进行补齐,使得压缩结果位数符合预计。
进一步地,在将待分享信息进行进制转换后,得到目标进制数组,为提高数据的安全性,对目标进制数组进行偏移处理,即数组获取与目标进制数组的元素数量相同的盐值数组;依次根据盐值数组中的每个盐值对目标进制数组中对应的目标进制数进行偏移处理,得到偏移处理后的目标进制数组。
其中,盐值可以是随机数,也可以是固定数值。盐值用于对目标进制数组进行偏移处理。偏移处理是指将盐值与对应位置的目标进制数进行相加。例如,盐值可以是二进制异或运算,将待分享信息123456789012345678进行进制转换(这里的进制转换是在转换二进制的过程中已实现高低位反转,不需要在进行额外的高低位反转),转换为二进制后结果为:
011100101100111100001100011001011101001011011001011011011,补齐到60位,得到011100101100111100001100011001011101001011011001011011011000,使用60位1对结果进行异或运算,实现增加盐值,增加盐值后结果为100011010011000011110011100110100010110100100110100100100111。
例如,将123456789012345678901234567890这30位数字压缩为7位中文过程中,进制转换后,得到210,622,143,18354,14202,8990,1480,使用随机7位20902进制516,18651,6975,2547,9875,5,317作为盐值,取20902进制的每位依次进行相加,对于超过20902的,需要减去20902,得到加盐偏移后的结果,716,19273,7118,20901,3175,8995,1797,然后再对加盐偏移后的结果转换为目标字符串,得到压缩结果“僌饉槎龥婧焣唅”。
具体地,获取与目标进制数组的元素数量相同的盐值数组;依次根据盐值数组中的每个盐值对目标进制数组中对应的目标进制数进行偏移处理,若偏移处理后的数大于目标进制,则需要减去目标进制,得到转换数据。可以理解的是,在压缩过程中,可以增加盐值,使得压缩结果与未添加盐值的压缩结果存在偏移,达到在一定程度上混淆压缩结果,使得无法轻易通过压缩结果还原原始数据。如果压缩过程中进行了加盐处理,则解压过程需要输入对应的盐值,在将目标进制(如,20902)转换为10进制之前,对每位减去盐值,不够减的加上目标进制(如,20902),这样会得到盐值前的目标进制(如,20902进制),然后再转换为10进制记得得到原始结果,即待分享信息。
可选地,在一个实施例中,确定待分享信息的目标进制和加密进制;目标进制为加密进制的n次幂;通过待分享信息除以加密进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;对待加密进制数组进行加密,得到加密进制数组;每次从加密进制数组取n位,得到的目标进制数组。
其中,这里的加密进制可以但不仅限于是2进制。本实施例以2进制为例进行说明。
具体地,确定加密进制为2进制,即2进制的加密算法,这里以AES算法为例说明加密压缩过程。由于使用基于2进制的加密算法,目标字符范围必须为2的n次幂,待分享信息为123456789012345678,确定目标字符范围为base64字符,确定目标进制为64进制,将18位数字加密压缩为10位字符。对通过待分享信息123456789012345678除以加密进制数2进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组(加密进制数组为也是高低位反转的数组);对待加密进制数组进行加密,得到加密进制数组结果为011100101100111100001100011001011101001011011001011011011,共57位。由于根据26=64,6410≈1.15×1018>1×1018,即260≈1.15×1018>1×1018,18位10进制可以对应为60位2进制,目前结果为57位,在目标结尾补齐至60位,缺少的位数补0,得到
011100101100111100001100011001011101001011011001011011011000
使用AES算法的AES/CFB8/NoPadding模式,128位1作为密钥,128位1作为向量,对二进制进行加密,得到
110011101101110100110110010011011011011111010100110100011010
将加密后的二进制,每6位对应到一位64进制得到加密后的64进制数组[51,45,52,54,19,27,31,20,52,26],根据64进制数组[51,45,52,54,19,27,31,20,52,26]得到加密后压缩结果:zt02TbfU0a。
通过确定待分享信息的目标进制数和加密进制数;目标进制数为加密进制数的n次幂;通过待分享信息除以加密进制数进行进制转换以及高低反转,得到待加密进制数组;对待加密进制数组进行加密,得到加密进制数组;每次从加密进制数组取n位,将得到的目标进制数组确定为转换数据。将高低位反转流程整合在了进制转换模块中,高低位反转配合加密算法,可以使得相邻的数字压缩结果出现较大差异,避免被根据已知原始数据和加密压缩结果,得到向量的其他数据。比如按照上述加密压缩算法,123456789012345677加密压缩结果为Dv7KWghYBu,123456789012345678加密压缩结果为zt02TbfU0a,123456789012345679加密压缩结果为Ts+W1Dnsuq。如果不反转高低位,即进制转换后,跟进制转换前保持一致,高位在前,低位在后,123456789012345677加密压缩结果为p6NsfAkw68,123456789012345678加密压缩结果为p6NsfAkw6/,123456789012345679加密压缩结果为p6NsfAkw6+。加密压缩结果前面字符基本相同,容易猜测相邻数据,无法确保数据的安全性。
可以理解的是,加密和解密算法的执行步骤相反,以加密后压缩结果:zt02TbfU0a为例进行说明,压缩结果中依次取字符,确定字符在已排序好的目标字符范围的第几个,得到64进制数组[51,45,52,54,19,27,31,20,52,26],将64进制数组每位转换为6位2进制,并拼接起来,得到110011101101110100110110010011011011011111010100110100011010,使用与加密相同的算法、密钥、向量对二进制进行解密,得到011100101100111100001100011001011101001011011001011011011000。将二进制转化为10进制,其中,将将二进制转化为10进制的二进制是高低位反转的二进制,转换后得到结果:123456789012345678。
步骤310,根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符,得到压缩数据数组。
可选地,在一个实施例中,将待分享信息转换为可识别的目标进制(目标机制为二进制),得到转化后的目标进制数组。可以理解的是,将待分享信息转换为可识别的目标进制在转换过程中已进行高低位反转,得到反转后的目标进制数组。获取盐值,根据盐值对转化后的目标进制数组进行偏移处理,得到偏移处理后的目标进制数组。对偏移处理后的目标进制数组进行加密处理,得到转换数据。按照指定顺序,依次从转换数据中取对应数量的目标位,并从字符数组中确定对应的字符,得到压缩数据。
其中,加密处理是指根据设定的密钥和向量对偏移处理后的目标进制数组进行加密处理。在某一业务场景中,存在数据安全性的要求,为了提高分享信息的安全性,可以通过对待分享信息进行加密处理,提高数据的安全性。
具体地,在对待分享信息进行加盐值进行偏移处理后,得到偏移处理后的目标进制数组,采用加密算法对偏移处理后的目标进制数组进行加密处理,得到转换数据,依次从转换数据中取对应数量的目标位,并从字符数组中确定对应的字符,得到压缩数据。其中,加密算法包括AES/CFB8/NoPadding等。
进一步可以理解的是,对于待分享信息增加了盐值和加密处理,在进行解压时,需要对对应步骤中进行解密和去盐值处理。例如,盐值可以是固定数,也可以是随机数。作为固定数的时候,根据固定数可以解密;作为随机数的时候,在解密时必须使用加密时使用的那个随机数进行解密。
可选地,在一个实施例中,对待分享信息进行压缩处理后,得到压缩数据,将压缩数据以预设形式发送至用户终端,其中,所述预设形式包括短信、链接中至少一种。用户终端在接收到压缩数据时,对压缩数据进行解密、去盐值后,将得到的数据转换为对应的进制,然后反转高低位,最后转换为10进制,得到待分享信息。进一步地,解压得到待分享信息后,根据具体的业务场景对待分享信息的应用,需还原后的待分享信息进行缺失位补充,例如,表示时间的时候,00:01:01,前面的0不能省略;大多数表示序号的时候,1、2、11、12,1不会写做01。
上述数据处理方法中,通过根据业务场景的场景特征和存储容量确定业务场景中待分享信息压缩后的目标字符范围;对目标字符范围内的各字符进行排序,得到排序后的字符数组;对待分享信息进行进制转换,在进制转换时,将低位排在前面,高位排在后面,得到反转后的目标进制数组,即在支持任意进制转换的过程中实现高低位反转,不需要额外地进行高低反转;对于不能省略位数的场景,在转换后的目标进制数组后面补齐至指定位数;进一步对目标进制数组进行增加盐值和加密处理,得到目标进制数组;进而从排序好的字符范围中确定目标进制数组中各子元素对应的可见字符,得到压缩数据。根据业务场景的场景特征和存储容量对待分享信息进行分析,得到满足业务场景的实际需求压缩的目标字符范围,根据压缩的目标字符范围对待分享信息进行加密和压缩,得到长度小于待分享信息字符长度的压缩数据,提高了待分享信息的安全性,以及确保了确保压缩数据满足业务场景需求和压缩数据显示的完整性。
在另一个实施例中,如图4所示,提供了一种数据处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤402,当待分享信息的字符串类型包括数字类和非数字类时,获取待分享信息中非数学类的字符串。
其中,非数字类包括字母类,非数字类的字符位数可以但不仅限于是1。例如,待分享信息的字符串中包括数字类和字母类,待分享信息的字符位数为18位,包括17位数字和1为字母,待分享信息为:17位数字+1位字母。
步骤404,将非数学类的字符串转化为预设数字字符串,并将预设数字字符串与待分享信息中数字类的字符串进行拼接,得到拼接字符串。
其中,预设数字字符串是预先确定。例如,待分享信息为17位数字+1位字母时,将字母转化为预设字符串10,得到19位数字。例如,待分享信息为18位的身份标识,根据6410≈1.15×1018>1×1018,1×1018到1.1x1018,依然可以压缩为10位字符,针对带字母(例如,X)的18位身份标识,可以将其转换为10开头+17位数字,转换后的数字为19位在1×1018到1.1x1018范围内,可以被压缩为10位字符。
步骤406,根据拼接字符串更新待分享信息。
步骤408,获取业务场景的待分享信息。
步骤410,根据业务场景的场景特征确定压缩的目标字符范围。
步骤412,对目标字符范围内的各字符进行排序,得到排序后的字符数组。
步骤414,对待分享信息进行进制转换,得到目标进制数组。
可选地,在一个实施例中,确定待分享信息的目标进制;通过待分享信息除以目标进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组;将目标进制数组确定为转换数据。进一步地,将目标进制数组确定为转换数据,包括:获取与目标进制数组的元素数量相同的盐值数组;依次根据盐值数组中的每个盐值对目标进制数组中对应的目标进制数进行偏移处理,得到转换数据。
可选地,在一个实施例中,确定待分享信息的目标进制和加密进制;目标进制为加密进制的n次幂;通过待分享信息除以加密进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;对待加密进制数组进行加密,得到加密进制数组;每次从加密进制数组取n位,将得到的目标进制数组确定为转换数据。
步骤416,根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符,得到压缩数据。
具体地,根据拼接字符串更新待分享信息,根据业务场景的场景特征确定压缩的目标字符范围,对目标字符范围进行排序,得到排序后的目标字符范围,对所述待分享信息进行进制转换,得到目标进制数组;根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
进一步地,根据拼接字符串更新待分享信息,根据业务场景的场景特征确定压缩的目标字符范围,对目标字符范围进行排序,得到排序后的目标字符范围。确定待分享信息的目标进制和加密进制;目标进制为加密进制的n次幂;通过待分享信息除以所述加密进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;对待加密进制数组进行加密,得到加密进制数组;依次从加密进制数组取n位,得到目标进制数组。根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
可选地,在一个实施例中,对待分享信息进行压缩处理后,得到压缩数据,将压缩数据以预设形式发送至用户终端,其中,所述预设形式包括短信、链接中至少一种。用户终端在接收到压缩数据时,对压缩数据进行解压后,得到19位的数字,对于结果是19位数字的,提取数组中的后17位数字部分,将提取的17位数字和待分享信息中的字母进行拼接,得到原始的待分享信息。
上述数据处理方法中,当待分享信息包括数字类和非数字类,对非数字类的字符串转化为预设数字字符串,并将预设数字字符串与待分享信息中数字类的字符串进行拼接,得到拼接字符串,后先进行进制转换,得到高低位反转的目标进制数组,从排序后的字符数组中确定目标进制数组中各子元素的可见字符,得到用于分享的压缩数据。根据业务场景的场景特征和存储容量对待分享信息进行分析,得到满足业务场景的实际需求压缩的目标字符范围,以及支持将待分享信息转换为任意进制的目标进制数组,得到压缩后的可见字符,便于压缩数据的分享和转发,提高了数据处理方法的通用性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据处理方法的数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据处理装置实施例中的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种数据处理装置,包括:信息获取模块502、字符范围确定模块504、字符排序模块506、进制转换模块508和字符压缩模块510,其中:
信息获取模块502,用于获取业务场景的待分享信息。
字符范围确定模块504,用于根据业务场景的场景特征确定压缩的目标字符范围。
字符排序模块506,用于对目标字符范围内的各字符进行排序,得到排序后的字符数组。
进制转换模块508,用于对待分享信息进行进制转换,得到目标进制数组。
字符压缩模块510,用于根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
上述数据处理装置中,通过根据业务场景的场景特征和存储容量确定业务场景中待分享信息压缩后的目标字符范围;对目标字符范围内的各字符进行排序,得到排序后的字符数组;对待分享信息进行进制转换,得到低位放前面,高位放后面的目标进制数组;根据目标进制数组中各子元素的数值从排序后的字符数组确定对应的字符得到压缩数据。在对待分享信息进行压缩前,根据业务场景的场景特征对待分享信息进行分析,从多种字符范围中确定满足业务场景的实际需求压缩的目标字符范围对待分享信息进行进制转换后,根据得到目标进制数组从排序后的字符数组确定对应的字符,完成待分享信息的压缩,得到长度小于待分享信息字符长度的压缩数据,对压缩数据可以直接进行分享或发送避免数据压缩后长度变长以及数据无法显示等情况无法满足业务场景需求,以及确保了压缩后数据完整显示。
在另一个实施例中,提供了一种数据处理装置,除包括信息获取模块502、字符范围确定模块504、字符排序模块506、进制转换模块508和字符压缩模块510之外,所述装置还包括:存储容量确定模块、字符位数确定模块、偏移处理模块、进制转换模块、加密模块、字符串类型确定模块、字符串拼接模块和更新模块,其中:
字符范围确定模块504还用于根据业务场景特征从多种字符范围中确定候选字符范围。
存储容量确定模块,用于获取候选字符范围的支持位数,以及待分享信息中的字符串位数。
根据各字符范围的支持位数和字符串位数,确定以各候选字符范围压缩待分享信息需要占用的存储容量。
字符范围确定模块504还用于根据各存储容量从候选字符范围中确定压缩的目标字符范围。
数组进制转换模块508还用于确定待分享信息的目标进制数;
通过待分享信息除以目标进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
偏移处理模块,用于获取与目标进制数组的元素数量相同的盐值数组;依次根据盐值数组中的每个盐值对目标进制数组中对应的目标进制数进行偏移处理,得到偏移处理后的目标进制数组。
进制转换模块508还用于确定待分享信息的目标进制数和加密进制数;目标进制数为加密进制数的n次幂;
通过待分享信息除以加密进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组。
加密模块,用于对待加密进制数组进行加密,得到加密进制数组;
每次从加密进制数组取n位,得到目标进制数组。
字符串类型确定模块,用于当待分享信息的字符串类型包括数字类和非数字类时,获取待分享信息中非数学类的字符串。
字符串拼接模块,用于将非数学类的字符串转化为预设数字字符串,并将预设数字字符串与待分享信息中数字类的字符串进行拼接,得到拼接字符串。
更新模块,用于根据拼接字符串更新待分享信息。
上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
获取业务场景的待分享信息;
根据所述业务场景的场景特征确定压缩的目标字符范围;
对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
对所述待分享信息进行进制转换,得到目标进制数组;
根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务场景的场景特征确定压缩的目标字符范围,包括:
根据所述业务场景特征从多种字符范围中确定候选字符范围;
获取所述候选字符范围的支持位数,以及所述待分享信息中的字符串位数;
根据各所述字符范围的支持位数和所述字符串位数,确定以各所述候选字符范围压缩所述待分享信息需要占用的存储容量;
根据各所述存储容量从所述候选字符范围中确定压缩的目标字符范围。
3.根据权利要求1所述的方法,其特征在于,所述对所述待分享信息进行进制转换,得到目标进制数组,包括:
确定所述待分享信息的目标进制;
通过所述待分享信息除以所述目标进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取与所述目标进制数组的元素数量相同的盐值数组;
依次根据所述盐值数组中的每个盐值对所述目标进制数组中对应的目标进制数进行偏移处理,得到偏移处理后的目标进制数组。
5.根据权利要求1所述的方法,其特征在于,所述对所述待分享信息进行进制转换,得到目标进制数组,包括:
确定所述待分享信息的目标进制和加密进制;所述目标进制为所述加密进制的n次幂;
通过所述待分享信息除以所述加密进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;
对所述待加密进制数组进行加密,得到加密进制数组;
依次从所述加密进制数组取n位,得到目标进制数组。
6.根据权利要求1所述的方法,其特征在于,所述获取业务场景的待分享信息,包括:
当所述待分享信息的字符串类型包括数字类和非数字类时,获取所述待分享信息中非数学类的字符串;
将所述非数学类的字符串转化为预设数字字符串,并将所述预设数字字符串与所述待分享信息中数字类的字符串进行拼接,得到拼接字符串;
根据所述拼接字符串更新所述待分享信息。
7.一种数据处理装置,其特征在于,所述装置包括:
信息获取模块,用于获取业务场景的待分享信息;
字符范围确定模块,用于根据所述业务场景的场景特征确定压缩的目标字符范围;
字符排序模块,用于对所述目标字符范围内的各字符进行排序,得到排序后的字符数组;
进制转换模块,用于对所述待分享信息进行进制转换,得到目标进制数组;
字符压缩模块,用于根据所述目标进制数组中各子元素的数值从所述排序后的字符数组确定对应的字符,得到压缩数据。
8.根据权利要求7所述的装置,其特征在于,所述字符范围确定模块还用于根据所述业务场景特征从多种字符范围中确定候选字符范围;
所述装置还包括:
存储容量确定模块,用于获取所述候选字符范围的支持位数,以及所述待分享信息中的字符串位数;
根据各所述字符范围的支持位数和所述字符串位数,确定以各所述候选字符范围压缩所述待分享信息需要占用的存储容量;
字符确定模块还用于根据各所述存储容量从所述候选字符范围中确定压缩的目标字符范围。
9.根据权利要求7所述的装置,其特征在于,所述进制转换模块,还用于确定所述待分享信息的目标进制;
通过所述待分享信息除以所述目标进制进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到目标进制数组。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
偏移处理模块,用于获取与所述目标进制数组的元素数量相同的盐值数组;依次根据所述盐值数组中的每个盐值对所述目标进制数组中对应的目标进制数进行偏移处理,得到偏移处理后的目标进制数组。
11.根据权利要求7所述的装置,其特征在于,所述进制转换模块还用于确定所述待分享信息的目标进制和加密进制;所述目标进制为所述加密进制的n次幂;
通过所述待分享信息除以所述加密进制数进行进制转换,将先得到的余数排在前面,后得到的余数依次往后排列,得到待加密进制数组;
所述装置还包括:加密模块,用于对所述待加密进制数组进行加密,得到加密进制数组;
每次从所述加密进制数组取n位,得到目标进制数组。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
字符串类型确定模块,用于当所述待分享信息的字符串类型包括数字类和非数字类时,获取所述待分享信息中非数学类的字符串;
字符串拼接模块,用于将所述非数学类的字符串转化为预设数字字符串,并将所述预设数字字符串与所述待分享信息中数字类的字符串进行拼接,得到拼接字符串;
更新模块,用于根据所述拼接字符串更新所述待分享信息。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210571168.2A CN114928363A (zh) | 2022-05-24 | 2022-05-24 | 数据处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210571168.2A CN114928363A (zh) | 2022-05-24 | 2022-05-24 | 数据处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114928363A true CN114928363A (zh) | 2022-08-19 |
Family
ID=82811179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210571168.2A Pending CN114928363A (zh) | 2022-05-24 | 2022-05-24 | 数据处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114928363A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116782206A (zh) * | 2023-08-23 | 2023-09-19 | 南京中科齐信科技有限公司 | 基于量子通信的列车车载无线自组网络安全方法及系统 |
-
2022
- 2022-05-24 CN CN202210571168.2A patent/CN114928363A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116782206A (zh) * | 2023-08-23 | 2023-09-19 | 南京中科齐信科技有限公司 | 基于量子通信的列车车载无线自组网络安全方法及系统 |
CN116782206B (zh) * | 2023-08-23 | 2023-10-24 | 南京中科齐信科技有限公司 | 基于量子通信的列车车载无线自组网络安全方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Enayatifar et al. | Image encryption using a synchronous permutation-diffusion technique | |
CN110008744B (zh) | 数据脱敏方法和相关装置 | |
CN111767565A (zh) | 一种数据脱敏的处理方法、处理装置和存储介质 | |
CN110768785A (zh) | 一种编、解码方法、相关装置及计算机设备 | |
US9619657B2 (en) | Method and apparatus for storing redeem code, and method and apparatus for verifying redeem code | |
US11763021B2 (en) | Efficient secure string search using homomorphic encryption | |
CN108829899B (zh) | 数据表储存、修改、查询和统计方法 | |
CN115051798A (zh) | 一种随机数生成方法、装置、电子设备及存储介质 | |
Şatir et al. | A symmetric DNA encryption process with a biotechnical hardware | |
CN115941189A (zh) | 一种用于文档数据的加密方法 | |
CN114928363A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20200059350A1 (en) | Multi-Layer Encryption Employing Kaprekar Routine and Letter-Proximity-Based Cryptograms | |
CN109271797B (zh) | 一种提高数据库敏感信息安全性的方法及系统 | |
CN113765650A (zh) | 数据加密、解密方法、装置、电子设备及存储介质 | |
CN112232025A (zh) | 一种字符串存储方法、装置及电子设备 | |
CN108710698B (zh) | 云环境下基于密文的多关键词模糊查询方法 | |
CN116010984A (zh) | 一种关系型数据库数据多重加密存储方法、装置及设备 | |
US20220247564A1 (en) | Parallel tokenization of floating point information in a distributed network environment | |
KR102208082B1 (ko) | 서버 장치, 정보관리 시스템, 정보관리 방법 및 컴퓨터 프로그램을 저장한 기록매체 | |
CN111324908A (zh) | 一种批量数据脱敏方法 | |
CN106339975A (zh) | 一种数字图像秘密分享及恢复方法及装置 | |
Waidyasooriya et al. | Efficient data transfer scheme using word-pair-encoding-based compression for large-scale text-data processing | |
CN114928437B (zh) | 加密方法、装置、设备及存储介质 | |
CN117633898B (zh) | 一种医疗数据管理方法、装置、电子设备及存储介质 | |
CN114091070B (zh) | 基于希尔伯特变换的密文生成方法、服务器、介质及装置 |
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 |