CN110768785B - 一种编、解码方法、相关装置及计算机设备 - Google Patents
一种编、解码方法、相关装置及计算机设备 Download PDFInfo
- Publication number
- CN110768785B CN110768785B CN201911005658.0A CN201911005658A CN110768785B CN 110768785 B CN110768785 B CN 110768785B CN 201911005658 A CN201911005658 A CN 201911005658A CN 110768785 B CN110768785 B CN 110768785B
- Authority
- CN
- China
- Prior art keywords
- character string
- binary number
- number sequence
- user information
- decryption
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Abstract
本发明提供了一种编、解码方法、相关装置及计算机设备,获取用户信息字符串;对用户信息字符串进行分组,每组分组用户信息字符串长度相同;得到任一分组用户信息字符串各自对应的一编码数值字符串;得到任一编码数值字符串各自对应的一二进制数序列集;对任一二进制数序列集中的每一个预设位数的二进制数序列执行移位及按位或运算操作,得到任一二进制数序列集各自对应的一个预设位数的最终二进制数序列;得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;得到用户信息字符串对应的密文。最终得到的用户信息字符串对应的密文长度比用户信息字符串的长度要短,减小了密文长度。
Description
技术领域
本发明涉及计算机处理技术领域,更具体的说,是涉及一种编、解码方法、相关装置及计算机设备。
背景技术
随着互联网与互联网+应用的发展,用户在互联网上留存的敏感信息越来越多,为了提高用户敏感信息的安全性,需要对用户敏感信息进行编码加密存储,当需要获取用户敏感信息的时候,再对加密的用户敏感信息执行解码处理。
但目前采用的敏感信息编码方式,在保证敏感信息安全的前提下,采用的密文长度越来越长,尤其是在存在海量用户敏感信息的情况下,给存储器的存储方面带来了很大的压力,基于此,如何在提高敏感信息安全性的前提下,减小密文长度,成为目前需要解决的技术问题。
发明内容
有鉴于此,本发明提供了一种编、解码方法、相关装置及计算机设备,以在提高敏感信息安全性的前提下,减小密文长度。
为实现上述目的,本发明提供如下技术方案:
一种编码方法,所述方法包括:
获取用户信息字符串;
按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
优选的,在每组分组用户信息字符串长度为4的情况下,所述确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串的过程包括:
确定任一分组用户信息字符串中每个用户信息字符各自对应的ASCII码数值;得到任一分组用户信息字符串各自对应的一ASCII码字符串。
优选的,在每组分组用户信息字符串长度为4的情况下,所述确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集的过程包括:
确定任一ASCII码字符串中每个ASCII码数值各自对应的16位的二进制数序列,得到任一ASCII码字符串各自对应的一个二进制数序列集。
优选的,在每组分组用户信息字符串长度为4的情况下,所述对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列的过程包括:
对任一个二进制数序列集中的每一个16位的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
优选的,所述对任一个二进制数序列集中的每一个16位的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个16位的最终二进制数序列的过程包括:
按照二进制数序列集中每个16位的二进制数序列从左到右的排列顺序,依次对每个二进制数序列集中的每一个16位的二进制数序列执行移位操作,得到每个二进制数序列集中的每一个16位的二进制数序列各自对应的16位的移位二进制数序列,其中,每一个16位的二进制数序列对应的移位位数为4与4-i的乘积,i为二进制数序列集中每个16位的二进制数序列从左到右的排列顺序编号,i为大于等于1,并且小于等于4的整数;
针对每个二进制数序列集中每个移位二进制数序列,按照二进制数序列集中每个移位二进制数序列的排列顺序,从二进制数序列集中选取任意两个移位二进制数序列执行按位或运算操作,得到16位的按位或运算结果;从二进制数序列集剩余未选取的移位二进制数序列中依次选取一个移位二进制数序列作为目标移位二进制数序列,依次将每一个目标移位二进制数序列与得到的上一个16位的按位或运算结果执行按位或运算操作,得到下一个16位的按位或运算结果,直到得到最后一个16位的按位或运算结果,将最后一个16位的按位或运算结果作为16位的最终按位或运算结果,并将得到的16位的最终按位或运算结果作为任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
优选的,所述在每组分组用户信息字符串长度为4的情况下,所述将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于分组用户信息字符串长度的过程包括:
将任一16位的最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的长度为1的加密字符串。
一种解码方法,所述方法包括:
依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
利用所述分组用户信息字符串得到用户信息字符串明文。
优选的,在所述解密字符串长度为1的情况下,所述将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列的过程包括:
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的一个16位的最终二进制数序列。
优选的,在所述解密字符串长度为1的情况下,所述依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序,组成任一解密字符串各自对应的二进制数序列集的过程包括:
依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的四个16位的二进制数序,将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
优选的,在所述解密字符串长度为1的情况下,所述依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的四个16位的二进制数序,将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集的过程包括:
依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次左移操作,得到16位的最终二进制数序列各自对应的四个左移操作结果;
将16位的最终二进制数序列各自对应的四个左移操作结果,分别执行无符号右移操作12位操作,得到16位的最终二进制数序列各自对应的四个右移操作结果;
将16位的最终二进制数序列各自对应的四个右移操作结果分别与0x0f执行按位与操作,得到16位的最终二进制数序列各自对应的四个按位与操作结果;
将得到16位的最终二进制数序列各自对应的四个按位与操作结果作为任一解密字符串各自对应的四个16位的二进制数序;
将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
优选的,所述确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串的过程包括:
确定任一解密字符串各自对应的二进制数序列集中的每个16位的二进制数序列各自对应的ASCII码数值,得到任一解密字符串各自对应的ASCII码字符串。
优选的,所述利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度的过程包括:
利用任一解密字符串各自对应的ASCII码字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度。
一种编码装置,所述装置包括:
字符串获取单元,用于获取用户信息字符串;
分组单元,用于按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
编码数值字符串确定单元,用于确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
二进制数序列集确定单元,用于确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
最终二进制数序列确定单元,用于对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
字符串变换单元,用于将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
密文确定单元,用于将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
一种解码装置,所述装置包括:
解密字符串获取单元,用于依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
字符串反变换单元,用于将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
二进制数序列集确定单元,用于依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
解码数值字符串确定单元,用于确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
分组用户信息字符串确定单元,用于利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
明文确定单元,用于利用所述分组用户信息字符串得到用户信息字符串明文。
一种计算机设备,所述计算机设备包括:编码器以及解码器;
所述编码器用于:
获取用户信息字符串;
按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文;
所述解码器用于:
依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
利用所述分组用户信息字符串得到用户信息字符串明文。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种编、解码方法、相关装置及计算机设备,通过获取用户信息字符串;按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。本发明实施例通过上述公开的对用户信息字符串进行分组,确定任一分组用户信息字符串各自对应的一编码数值字符串,确定任一编码数值字符串各自对应的一个二进制数序列集,以及对每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列,将任一最终二进制数序列进行字符串变换,得到的加密字符串的长度小于与其对应的分组用户信息字符串长度,最终得到的用户信息字符串对应的密文长度会比用户信息字符串的长度要短,因此,通过上述编码加密方式,本发明实施例在提高保证敏感信息安全性的前提下,减小了密文长度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种编码方法一个实施例的流程示意图;
图2为本发明实施例提供的另一种编码方法一个实施例的流程示意图;
图3为本发明实施例提供的一种解码方法一个实施例的流程示意图;
图4为本发明实施例提供的另一种解码方法一个实施例的流程示意图;
图5为本发明实施例提供的一种编码装置的结构框图;
图6为本发明实施例提供的一种解码装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前采用的敏感信息编码方式,在提高敏感信息安全性的前提下,采用的密文长度越来越长,例如Base64编码方式,Base64编码方式的原理是从用户信息字符串中的原高8位字符中取高6位与预设两位字符组成新的8位字符,原高8位字符中剩余的两位字符就要和用户信息字符串中后面的字符串中的6位进行结合,依次类推。如果用户信息字符串中包含3个字节的字符,每个字节包含8位字符,用户信息字符串的长度总共为3字节*8位=24位,采用Base64编码方式对用户信息字符串进行编码加密,在所含真实信息不丢失的前提下,最少需要4字节*(6+2)位=32位的密文长度。编码后得到的密文长度明显比用户信息字符串的长度还要长。尤其是在存在海量用户敏感信息的情况下,给存储器的存储方面带来了很大的压力,
对于目前的对称编码加密方法中常见的AES或DES编码方式,或者非对称编码加密中常见的RSA等编码方式,不仅密文长度比较长,还使用了较复杂的密钥设置与加密方式,普遍存在加密性能低的问题,在一些高速存取、高并发的场景下上述编码加密方式会明显降低系统的整体效率。
为了解决上述现有技术中存在的问题,本发明提供了一种编、解码方法、相关装置及计算机设备,通过获取用户信息字符串;按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。本发明实施例通过上述公开的对用户信息字符串进行分组,确定任一分组用户信息字符串各自对应的一编码数值字符串,确定任一编码数值字符串各自对应的一个二进制数序列集,以及对每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列,将任一最终二进制数序列进行字符串变换,得到的加密字符串的长度小于与其对应的分组用户信息字符串长度,最终得到的用户信息字符串对应的密文长度会比用户信息字符串的长度要短,因此,通过上述编码加密方式,本发明实施例在提高保证敏感信息安全性的前提下,减小了密文长度。
而且,本发明公开的上述编码加密方式,仅仅采用了简单的字符串编码、移位操作以及按位或运算操作方式,达到了减小密文长度的效果,提高了编码加密的性能,进而能够提高系统的整体效率。
如图1,其示出了本申请一种编码方法一个实施例的流程示意图,本实施例包括:
S100、获取用户信息字符串;
需要说明的是,用户信息字符串为待编码加密的字符串,具体类型可以为数字类型的字符串、或者字母类型的字符串、或者特殊符号类型的字符串等,还可以为以上三种类型中任意两种或三种的组合字符串,还可以为其他类型的字符串,本发明实施例不做具体限定。
可选的,本申请对用户信息字符串的位数并不做具体限定。
S110、按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
本发明实施例可以按照用户信息字符串中的字符从高位到低位的顺序,对用户信息字符串进行分组,会得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同,可选的,本发明实施例中针对每组分组用户信息字符串的长度可以为4,还可以为其他长度。本发明实施例不做具体限定。
如果用户信息字符串的长度不能保证分组得到的每组分组用户信息字符串长度相同,可以采用补位的方式,将用户信息字符串的长度补至每组分组用户信息字符串长度的整倍数长度。具体的,可以在用户信息字符串的前面补位,还可以在用户信息字符串的后面补位,或者在用户信息字符串的中间位置补位,本发明实施例不做具体限定。
S120、确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
具体的,本发明实施例可以确定任一分组用户信息字符串中每个用户信息字符各自对应的ASCII码数值,得到任一分组用户信息字符串各自对应的一ASCII码字符串。当然,本发明实施例还可以得到其他类型的编码数值字符串,本发明实施例不做具体限定。
S130、确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
需要说明的是,本发明实施例可以确定任一编码数值字符串中每个预设编码数值各自对应的16位的二进制数序列,即每个编码数值字符串中每个预设编码数值都对应一个16位的二进制数序列,将各个16位的二进制数序列按照顺序进行组合,得到二进制数序列集。
S140、对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
本发明实施例对每一个预设位数的二进制数序列分别执行不同的移位操作,得到每一个预设位数的二进制数序列各自对应的一个移位结果,再依次将各个移位结果执行按位或运算操作,从而将二进制数序列集中的多个预设位数的二进制数序转换成一个预设位数的最终二进制数序列,减小了二进制序列的长度。
S150、将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
由于预设位数的最终二进制数序列与预设位数的二进制数序列的序列长度相同,因此本发明实施例将二进制数序列集中的多个预设位数的二进制数序列转换成一个预设位数的最终二进制数序列后,减小了二进制序列的长度,将任一最终二进制数序列转换成加密字符串后,得到的任一加密字符串的长度必然小于与其对应的分组用户信息字符串长度。
S160、将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
将得到的每个加密字符串按照顺序进行拼接,拼接结果作为用户信息字符串对应的密文。
通过获取用户信息字符串;按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。本发明实施例通过上述公开的对用户信息字符串进行分组,确定任一分组用户信息字符串各自对应的一编码数值字符串,确定任一编码数值字符串各自对应的一个二进制数序列集,以及对每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列,将任一最终二进制数序列进行字符串变换,得到的加密字符串的长度小于与其对应的分组用户信息字符串长度,最终得到的用户信息字符串对应的密文长度会比用户信息字符串的长度要短,因此,通过上述编码加密方式,本发明实施例在提高敏感信息安全性的前提下,减小了密文长度,进一步减小了密文所占用的存储空间。并且,通过上述编码方式,得到的密文与用户信息字符串完全不同,实现了对用户信息字符串的加密效果。
下面以每组分组用户信息字符串长度为4的情况为例,如图2,其示出了本申请一种编码方法一个实施例的流程示意图,本实施例包括:
S200、获取用户信息字符串;
S210、按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
本发明实施例将用户信息字符串按照每四个字符进行分组,每组分组用户信息字符串长度为4,如果用户信息字符串的长度不为4的倍数,则采用在用户信息字符串之前补充特殊符号的方式,使得补充特殊符号之后得到的总的用户信息字符串长度为4的倍数。
所补充的特殊符号至少需要满足该补充的特殊符号在ASCII码表中的十进制数值减去48之后得到的十进制数值,还能够采用四位的二进制数值表示,例如,补充的特殊符号可以为英文冒号。
S220、确定任一分组用户信息字符串中每个用户信息字符各自对应的ASCII码数值;得到任一分组用户信息字符串各自对应的一ASCII码字符串;
需要说明的是,本发明实施例将任一分组用户信息字符串中每个用户信息字符在ASCII码表中的十进制数值各自减去48之后得到的十进制数值,作为任一分组用户信息字符串中每个用户信息字符各自对应的ASCII码数值,将每个ASCII码数值按照与其对应的用户信息字符的排列顺序进行组合排列,得到任一分组用户信息字符串各自对应的一ASCII码字符串。所述ASCII码数值为十进制数值。
S230、确定任一ASCII码字符串中每个ASCII码数值各自对应的16位的二进制数序列,得到任一ASCII码字符串各自对应的一个二进制数序列集;
每组分组用户信息字符串中包含四个字符,即包含四个ASCII码数值,每个ASCII码数值都对应生成一个16位的二进制数序列,因此任一ASCII码字符串对应的二进制数序列集中包含四个16位的二进制数序列。
S240、对任一个二进制数序列集中的每一个16位的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个16位的最终二进制数序列;
需要说明的是,本发明实施例公开的移位操作以及按位或运算操作的具体方式可以为:
按照二进制数序列集中每个16位的二进制数序列从左到右的排列顺序,依次对每个二进制数序列集中的每一个16位的二进制数序列执行移位操作,具体的为左移操作,得到每个二进制数序列集中的每一个16位的二进制数序列各自对应的16位的移位二进制数序列,按照移位二进制数序各自对应的二进制数序在二进制数序列集中的排列顺序,将每个二进制数序列集中的移位二进制数序列进行排列组合。
其中,每一个16位的二进制数序列对应的移位位数为4与4-i的乘积,i为二进制数序列集中每个16位的二进制数序列从左到右的排列顺序编号,i为大于等于1,并且小于等于4的整数;
针对每个二进制数序列集中每个移位二进制数序列,按照二进制数序列集中每个移位二进制数序列的排列顺序,从二进制数序列集中选取任意两个移位二进制数序列执行按位或运算操作,得到16位的按位或运算结果;从二进制数序列集剩余未选取的移位二进制数序列中依次选取一个移位二进制数序列作为目标移位二进制数序列,依次将每一个目标移位二进制数序列与得到的上一个16位的按位或运算结果执行按位或运算操作,得到下一个16位的按位或运算结果,直到得到最后一个16位的按位或运算结果,将最后一个16位的按位或运算结果作为16位的最终按位或运算结果,并将得到的16位的最终按位或运算结果作为任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
可选的,本发明实施例中首先可以按照二进制数序列集中每个移位二进制数序列的排列顺序,从二进制数序列集中选取排列在前两位的两个移位二进制数序列执行按位或运算操作。
S250、将任一16位的最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的长度为1的加密字符串;
16位的最终二进制数序列中每8位为一个字节,而一个字符正好占用两个字节,所以,按照预先设置的字符转换规则,16位的最终二进制数序列可以转换为长度为1的一个字符,在按照预先设置的字符串转换规则,将长度为1的一个字符转换为长度为1的加密字符串。
需要说明的是,本发明实施例中将分组用户信息字符串长度采用四位二进制数表示之后,得到二进制分组用户信息字符串长度数值,再将二进制分组用户信息字符串长度数值中的1右移两位,并将右移两位后得到的数值作为加密字符串的长度。
预先设置的字符转换规则以及预先设置的字符串转换规则可以由本领域技术人员进行设置,本发明实施例不做具体限定。
长度为1的一个字符可以为可见字符或不可见字符,还有可能为一个不能直接阅读的乱码,本发明实施例并不做具体限定。
S260、将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
由于每一个分组用户信息字符串都对应一个加密字符串,本发明实施例按照加密字符串对应的分组用户信息字符串在用户信息字符串中的排列顺序,将每个加密字符串进行排列拼接,并将排列拼接得到的结果作为用户信息字符串对应的密文。
下面以一个具体的例子详细说明本发明实施例公开的上述编码方法:
1、获取用户信息字符串12345678;
2、对所述用户信息字符串进行分组,得到分组用户信息字符串“1234”与“5678”;
以对分组用户信息字符串“1234”进行编码处理为例:
3、“0”在ASCII码表中代表数字为48,“1”在ASCII码表中代表数字为49,“2”在ASCII码表中代表数字为50,“3”在ASCII码表中代表数字为51,“4”在ASCII码表中代表数字为52,“1234”对应的ASCII码表中的十进制数值为['49','50','51','52'];各个ASCII码表中的十进制数值减去48之后得到ASCII码字符串A=[1,2,3,4]。
4、ASCII码字符串A中,元素的二进制表示(16位占用)分别为0000 0000 00000001,0000 0000 0000 0010,0000 0000 0000 0011,0000 0000 0000 0100,得到第一二进制数序列集;{0000 0000 0000 0001,0000 0000 0000 0010,0000 0000 0000 0011,00000000 0000 0100}。
5、将第一二进制数序列集中第一个二进制序列中的数字1左移12位,第二个二进制序列中的数字1左移8位,第三个二进制序列中的数字1左移4位,第四个二进制序列中的数字1左移0位后,依次得到如下第二二进制数序列集:{0001 0000 0000 0000,0000 00100000 0000,0000 0000 0011 0000,0000 0000 0000 0100};
6、将第二二进制数序列集中的第一个二进制序列与第二个二进制序列执行按位或运算操作,得到:第一按位或运算操作序列:0001 0010 0000 0000;将第一按位或运算操作序列与第二二进制数序列集中的第二个二进制序列执行按位或运算操作,得到:第二按位或运算操作序列:0001 0010 0011 0000;将第二按位或运算操作序列与第二二进制数序列集中的第三个二进制序列执行按位或运算操作,得到:第三按位或运算操作序列:00010010 0011 0100。这16位为两个字节,而一个char正好占用两个字节,所以0001 0010 00110100代表了一个char的内存存储,将该1长度的char数组初始化为1长度的字符串S,该字符串S即为用户信息字符串对应的密文。
通过对不同种类的编码方式分析,本发明实施例得到以下几种编码方式的性能:
Base64编码方式:明文长度13,密文长度20,压缩率负53%。加解密十万次,耗时100毫秒,平均1纳秒加解密一次。
RSA编码方式:明文长度13,密文长度24,压缩率负84.6%。加解密十万次,耗时2450毫秒,平均24.5纳秒加解密一次。
本发明提供的编码方式:明文长度13,密文长度4,压缩率69.23%。加解密十万次,耗时150毫秒,平均1.5纳秒加解密一次。
经过对比可知,采用本发明提供的编码方式能够在大幅提升压缩率的同时,保持了较高的编码性能。
参照上述实施例公开的编码方法,本发明实施例公开了一种解码方法,本发明实施例公开的解码方法与编码方法相对应,本发明实施例公开的编码方法与解码方法的具体内容可以相互对应参照。如图3,其示出了本申请一种解码方法一个实施例的流程示意图,本实施例包括:
S300、依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
由于本发明实施例中的密文是由各个解密字符串拼接而成的,将密文进行字符串分组,可以得到解密字符串。
S310、将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
S320、依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
本发明实施例依次将任一解密字符串各自对应的一个16位的最终二进制数序列执行预设次数的移位操作以及按位与运算操作的组合操作,从而得到任一解密字符串各自对应的多个16位的二进制数序,多个16位的二进制数序列按照顺序进行组合,得到任一解密字符串各自对应的二进制数序列集。
S330、确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
本发明实施例可以确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的ASCII码数值,得到任一解密字符串各自对应的ASCII码字符串。当然,本发明实施例还可以得到其他类型的解码数值字符串,本发明实施例不做具体限定。
S340、利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
本发明实施例可以利用解码数值字符串与分组用户信息字符串的对应关系,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度。
本发明实施例对应可以得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同,可选的,本发明实施例中针对每组分组用户信息字符串的长度可以为4,还可以为其他长度。本发明实施例不做具体限定。
S350、利用所述分组用户信息字符串得到用户信息字符串明文。
将得到的至少一组分组用户信息字符串按照预先的顺序进行组合,可以得到用户信息字符串明文,用户信息字符串明文为对密文进行解码得到的,用户信息字符串明文具体类型可以为数字类型的字符串、或者字母类型的字符串、或者特殊符号类型的字符串等,还可以为以上三种类型中任意两种或三种的组合字符串,还可以为其他类型的字符串,本发明实施例不做具体限定。
本发明实施例将得到的至少一组分组用户信息字符串按照预先的顺序进行组合后,识别出补位的字符,将补位的字符剔除之后,可以得到用户信息字符串明文。
下面以解密字符串长度为1的情况为例,如图4,其示出了本申请一种解码方法一个实施例的流程示意图,本实施例包括:
S400、依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
S410、将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的一个16位的最终二进制数序列;
对于一个16位的最终二进制数序列中每8位为一个字节,而一个字符正好占用两个字节,所以,按照预先设置的字符串反转换规则,长度为1的解密字符串可以转换成长度为1的一个字符,按照预先设置的字符反转换规则,长度为1的一个字符可以转化成一个16位的最终二进制数序列。
长度为1的一个字符可以为可见字符或不可见字符,还有可能为一个不能直接阅读的乱码,本发明实施例并不做具体限定。
预先设置的字符反转换规则以及预先设置的字符串反转换规则可以由本领域技术人员进行设置,本发明实施例不做具体限定。
S420、依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的四个16位的二进制数序,将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集;
需要说明的是,本发明实施例公开的移位操作以及按位与运算操作的具体方式可以为:
依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次左移操作,得到16位的最终二进制数序列各自对应的四个左移操作结果;将16位的最终二进制数序列各自对应的四个左移操作结果,分别执行无符号右移操作12位操作,得到16位的最终二进制数序列各自对应的四个右移操作结果;将16位的最终二进制数序列各自对应的四个右移操作结果分别与0x0f执行按位与操作,得到16位的最终二进制数序列各自对应的四个按位与操作结果;将得到16位的最终二进制数序列各自对应的四个按位与操作结果作为任一解密字符串各自对应的四个16位的二进制数序;将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
其中,每一个16位的最终二进制数序列每次执行左移操作的位数为4与j-1的乘积,j为每一个16位的最终二进制数序列执行左移操作的次序编号,第一次执行左移操作对应的左移操作的次序编号为1,第二次执行左移操作对应的左移操作的次序编号为2,依次类推,j为大于等于1,并且小于等于4的整数。
S430、确定任一解密字符串各自对应的二进制数序列集中的每个16位的二进制数序列各自对应的ASCII码数值,得到任一解密字符串各自对应的ASCII码字符串;
任一解密字符串各自对应四个16位的二进制数序,因此四个16位的二进制数序可以各自对应一个ASCII码数值,一解密字符串对应四个ASCII码数值,一解密字符串对应的四个ASCII码数值构成该解密字符串对应的ASCII码字符串。ASCII码字符串中的ASCII码数值指的是十进制的ASCII码数值。
S440、利用任一解密字符串各自对应的ASCII码字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
将任一解密字符串各自对应的ASCII码字符串中的十进制的ASCII码数值加48之后,得到每个分组用户信息字符串中每个用户信息字符在ASCII码表中的十进制数值,再将每个用户信息字符在ASCII码表中的十进制数值进行组合,得到任一解密字符串对应的分组用户信息字符串。
本发明实施例中将解密字符串长度采用四位二进制数表示之后,得到二进制解密字符串长度数值,再将二进制解密字符串长度数值中的1左移两位,并将左移两位后得到的数值作为分组用户信息字符串长度。任一解密字符串的长度小于与其对应的分组用户信息字符串长度。
S450、利用所述分组用户信息字符串得到用户信息字符串明文。
下面以一个具体的例子详细说明本发明实施例公开的上述解码方法:
1、依据用户信息字符串对应的密文S,得到用户信息字符串对应的每个解密字符串;
2、将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的一个16位的最终二进制数序列,例如:0001 0010 0011 0100;
3、先将其无符号右移12位得到0000 0000 0000 0001,0000 0000 0000 0001与十六进制0x0f(二进制表示为0000 0000 0000 1111)做按位与运算,得到0000 0000 00000001,并将0000 0000 0000 0001转换成十进制,将十进制结果加48,得到ASCII码表中的数字1,放入明文数组第一位;
再将0001 0010 0011 0100左移4位再无符号右移12位,得到0000 0000 00000010,0000 0000 0000 0010与0x0f做按位与运算,得到0000 0000 0000 0010,并将00000000 0000 0010转换成十进制,将十进制结果加48,得到ASCII码表中的数字2,放入明文数组第二位;
再将0001 0010 0011 0100左移8位再无符号右移12位,将得到的结果与0x0f做按位与运算,按位与运算结果转换成十进制,将十进制结果加48得到ASCII码表中的数字3放入明文数组第三位;
同理,最后将0001 0010 0011 0100左移12位再无符号右移12位,将得到的结果与0x0f做按位与运算,按位与运算结果转换成十进制,将十进制结果加48得到ASCII码表中的数字4放入明文数组第4位。
至此,明文数组已构建完毕,将其初始化为字符串形式即为用户信息字符串明文“1234”,解密过程结束。
下面对本发明实施例提供的一种编码装置进行介绍,下文描述的一种编码装置可与上文介绍的编码方法相互对应参照。
图5为本发明实施例提供的编码装置的结构框图,所述装置应用于计算机设备,参照图5,该编码装置至少包括:
字符串获取单元100,用于获取用户信息字符串;
分组单元110,用于按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
编码数值字符串确定单元120,用于确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
二进制数序列集确定单元130,用于确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
最终二进制数序列确定单元140,用于对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
字符串变换单元150,用于将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
密文确定单元160,用于将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
在每组分组用户信息字符串长度为4的情况下,所述编码数值字符串确定单元具体用于:确定任一分组用户信息字符串中每个用户信息字符各自对应的ASCII码数值;得到任一分组用户信息字符串各自对应的一ASCII码字符串。
在每组分组用户信息字符串长度为4的情况下,所述二进制数序列集确定单元具体用于:确定任一ASCII码字符串中每个ASCII码数值各自对应的16位的二进制数序列,得到任一ASCII码字符串各自对应的一个二进制数序列集。
在每组分组用户信息字符串长度为4的情况下,所述最终二进制数序列确定单元包括:最终二进制数序列确定子单元,所述最终二进制数序列确定子单元用于对任一个二进制数序列集中的每一个16位的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
最终二进制数序列确定子单元具体用于:
按照二进制数序列集中每个16位的二进制数序列从左到右的排列顺序,依次对每个二进制数序列集中的每一个16位的二进制数序列执行移位操作,得到每个二进制数序列集中的每一个16位的二进制数序列各自对应的16位的移位二进制数序列,其中,每一个16位的二进制数序列对应的移位位数为4与4-i的乘积,i为二进制数序列集中每个16位的二进制数序列从左到右的排列顺序编号,i为大于等于1,并且小于等于4的整数;
针对每个二进制数序列集中每个移位二进制数序列,按照二进制数序列集中每个移位二进制数序列的排列顺序,从二进制数序列集中选取任意两个移位二进制数序列执行按位或运算操作,得到16位的按位或运算结果;从二进制数序列集剩余未选取的移位二进制数序列中依次选取一个移位二进制数序列作为目标移位二进制数序列,依次将每一个目标移位二进制数序列与得到的上一个16位的按位或运算结果执行按位或运算操作,得到下一个16位的按位或运算结果,直到得到最后一个16位的按位或运算结果,将最后一个16位的按位或运算结果作为16位的最终按位或运算结果,并将得到的16位的最终按位或运算结果作为任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
所述在每组分组用户信息字符串长度为4的情况下,所述字符串变换单元具体用于:
将任一16位的最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的长度为1的加密字符串。
下面对本发明实施例提供的一种解码装置进行介绍,下文描述的一种解码装置可与上文介绍的解码方法相互对应参照。
图6为本发明实施例提供的解码装置的结构框图,所述装置应用于计算机设备,参照图6,该解码装置至少包括:
解密字符串获取单元200,用于依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
字符串反变换单元210,用于将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
二进制数序列集确定单元220,用于依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
解码数值字符串确定单元230,用于确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
分组用户信息字符串确定单元240,用于利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
明文确定单元250,用于利用所述分组用户信息字符串得到用户信息字符串明文。
在所述解密字符串长度为1的情况下,所述字符串反变换单元具体用于:
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的一个16位的最终二进制数序列。
在所述解密字符串长度为1的情况下,所述二进制数序列集确定单元包括:二进制数序列集确定子单元,二进制数序列集确定子单元用于:依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的四个16位的二进制数序,将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
所述二进制数序列集确定子单元具体用于:
依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次左移操作,得到16位的最终二进制数序列各自对应的四个左移操作结果;
将16位的最终二进制数序列各自对应的四个左移操作结果,分别执行无符号右移操作12位操作,得到16位的最终二进制数序列各自对应的四个右移操作结果;
将16位的最终二进制数序列各自对应的四个右移操作结果分别与0x0f执行按位与操作,得到16位的最终二进制数序列各自对应的四个按位与操作结果;
将得到16位的最终二进制数序列各自对应的四个按位与操作结果作为任一解密字符串各自对应的四个16位的二进制数序;
将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
解码数值字符串确定单元具体用于:确定任一解密字符串各自对应的二进制数序列集中的每个16位的二进制数序列各自对应的ASCII码数值,得到任一解密字符串各自对应的ASCII码字符串。
分组用户信息字符串确定单元具体用于:利用任一解密字符串各自对应的ASCII码字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度。
本发明实施例还公开了一种计算机设备,所述计算机设备包括:编码器以及解码器;
所述编码器用于:
获取用户信息字符串;
按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
对任一个二进制数序列集中的每一个预设位数的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文;
所述解码器用于:
依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
依次将任一解密字符串各自对应的最终二进制数序列执行移位操作以及按位与运算操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
利用所述分组用户信息字符串得到用户信息字符串明文。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种编码方法,其特征在于,所述方法包括:
获取用户信息字符串;
按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
对任一个二进制数序列集中的每一个预设位数的二进制数序列分别执行不同的移位操作,得到每一个预设位数的二进制数序列各自对应的一个移位结果,再依次将各个移位结果执行按位或运算操作,从而将所述二进制数序列集中的多个预设位数的二进制数序转换成一个预设位数的最终二进制数序列,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
2.根据权利要求1所述的方法,其特征在于,在每组分组用户信息字符串长度为4的情况下,所述确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串的过程包括:
确定任一分组用户信息字符串中每个用户信息字符各自对应的ASCII码数值;得到任一分组用户信息字符串各自对应的一ASCII码字符串。
3.根据权利要求1所述的方法,其特征在于,在每组分组用户信息字符串长度为4的情况下,所述确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集的过程包括:
确定任一ASCII码字符串中每个ASCII码数值各自对应的16位的二进制数序列,得到任一ASCII码字符串各自对应的一个二进制数序列集。
4.根据权利要求1所述的方法,其特征在于,在每组分组用户信息字符串长度为4的情况下,所述对任一个二进制数序列集中的每一个预设位数的二进制数序列分别执行不同的移位操作,得到每一个预设位数的二进制数序列各自对应的一个移位结果,再依次将各个移位结果执行按位或运算操作,从而将所述二进制数序列集中的多个预设位数的二进制数序转换成一个预设位数的最终二进制数序列,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列的过程包括:
对任一个二进制数序列集中的每一个16位的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
5.根据权利要求4所述的方法,其特征在于,所述对任一个二进制数序列集中的每一个16位的二进制数序列执行移位操作以及按位或运算操作,得到任一个二进制数序列集各自对应的一个16位的最终二进制数序列的过程包括:
按照二进制数序列集中每个16位的二进制数序列从左到右的排列顺序,依次对每个二进制数序列集中的每一个16位的二进制数序列执行移位操作,得到每个二进制数序列集中的每一个16位的二进制数序列各自对应的16位的移位二进制数序列,其中,每一个16位的二进制数序列对应的移位位数为4与4-i的乘积,i为二进制数序列集中每个16位的二进制数序列从左到右的排列顺序编号,i为大于等于1,并且小于等于4的整数;
针对每个二进制数序列集中每个移位二进制数序列,按照二进制数序列集中每个移位二进制数序列的排列顺序,从二进制数序列集中选取任意两个移位二进制数序列执行按位或运算操作,得到16位的按位或运算结果;从二进制数序列集剩余未选取的移位二进制数序列中依次选取一个移位二进制数序列作为目标移位二进制数序列,依次将每一个目标移位二进制数序列与得到的上一个16位的按位或运算结果执行按位或运算操作,得到下一个16位的按位或运算结果,直到得到最后一个16位的按位或运算结果,将最后一个16位的按位或运算结果作为16位的最终按位或运算结果,并将得到的16位的最终按位或运算结果作为任一个二进制数序列集各自对应的一个16位的最终二进制数序列。
6.根据权利要求5所述的方法,其特征在于,所述在每组分组用户信息字符串长度为4的情况下,所述将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于分组用户信息字符串长度的过程包括:
将任一16位的最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的长度为1的加密字符串。
7.一种解码方法,其特征在于,所述方法包括:
依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
依次将任一解密字符串各自对应的最终二进制数序列执行预设次数的移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
利用所述分组用户信息字符串得到用户信息字符串明文。
8.根据权利要求7所述的方法,其特征在于,在所述解密字符串长度为1的情况下,所述将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列的过程包括:
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的一个16位的最终二进制数序列。
9.根据权利要求7所述的方法,其特征在于,在所述解密字符串长度为1的情况下,所述依次将任一解密字符串各自对应的最终二进制数序列执行预设次数的移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的多个预设位数的二进制数序,组成任一解密字符串各自对应的二进制数序列集的过程包括:
依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的四个16位的二进制数序,将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
10.根据权利要求9所述的方法,其特征在于,在所述解密字符串长度为1的情况下,所述依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的四个16位的二进制数序,将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集的过程包括:
依次将任一解密字符串各自对应的16位的最终二进制数序列各执行四次左移操作,得到16位的最终二进制数序列各自对应的四个左移操作结果;
将16位的最终二进制数序列各自对应的四个左移操作结果,分别执行无符号右移操作12位操作,得到16位的最终二进制数序列各自对应的四个右移操作结果;
将16位的最终二进制数序列各自对应的四个右移操作结果分别与0x0f执行按位与操作,得到16位的最终二进制数序列各自对应的四个按位与操作结果;
将得到16位的最终二进制数序列各自对应的四个按位与操作结果作为任一解密字符串各自对应的四个16位的二进制数序;
将任一解密字符串各自对应的四个16位的二进制数序,组合成任一解密字符串各自对应的二进制数序列集。
11.根据权利要求7所述的方法,其特征在于,所述确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串的过程包括:
确定任一解密字符串各自对应的二进制数序列集中的每个16位的二进制数序列各自对应的ASCII码数值,得到任一解密字符串各自对应的ASCII码字符串。
12.根据权利要求7所述的方法,其特征在于,所述利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度的过程包括:
利用任一解密字符串各自对应的ASCII码字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度。
13.一种编码装置,其特征在于,所述装置包括:
字符串获取单元,用于获取用户信息字符串;
分组单元,用于按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
编码数值字符串确定单元,用于确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
二进制数序列集确定单元,用于确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
最终二进制数序列确定单元,用于对任一个二进制数序列集中的每一个预设位数的二进制数序列分别执行不同的移位操作,得到每一个预设位数的二进制数序列各自对应的一个移位结果,再依次将各个移位结果执行按位或运算操作,从而将所述二进制数序列集中的多个预设位数的二进制数序转换成一个预设位数的最终二进制数序列,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
字符串变换单元,用于将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
密文确定单元,用于将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文。
14.一种解码装置,其特征在于,所述装置包括:
解密字符串获取单元,用于依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
字符串反变换单元,用于将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
二进制数序列集确定单元,用于依次将任一解密字符串各自对应的最终二进制数序列执行预设次数的移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
解码数值字符串确定单元,用于确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
分组用户信息字符串确定单元,用于利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
明文确定单元,用于利用所述分组用户信息字符串得到用户信息字符串明文。
15.一种计算机设备,其特征在于,所述计算机设备包括:编码器以及解码器;
所述编码器用于:
获取用户信息字符串;
按照预先设置的分组方式,对所述用户信息字符串进行分组,得到至少一组分组用户信息字符串,每组分组用户信息字符串长度相同;
确定任一分组用户信息字符串中每个用户信息字符各自对应的预设编码数值,得到任一分组用户信息字符串各自对应的一编码数值字符串;
确定任一编码数值字符串中每个预设编码数值各自对应的预设位数的二进制数序列,得到任一编码数值字符串各自对应的一个二进制数序列集;
对任一个二进制数序列集中的每一个预设位数的二进制数序列分别执行不同的移位操作,得到每一个预设位数的二进制数序列各自对应的一个移位结果,再依次将各个移位结果执行按位或运算操作,从而将所述二进制数序列集中的多个预设位数的二进制数序转换成一个预设位数的最终二进制数序列,得到任一个二进制数序列集各自对应的一个预设位数的最终二进制数序列;
将任一最终二进制数序列进行字符串变换,得到任一分组用户信息字符串各自对应的加密字符串,其中任一加密字符串的长度小于与其对应的分组用户信息字符串长度;
将用户信息字符串对应的每个加密字符串按照顺序进行拼接,得到用户信息字符串对应的密文;
所述解码器用于:
依据用户信息字符串对应的密文,得到用户信息字符串对应的每个解密字符串;
将每个解密字符串进行字符串反变换,得到任一解密字符串各自对应的最终二进制数序列;
依次将任一解密字符串各自对应的最终二进制数序列执行预设次数的移位操作以及按位与运算操作的组合操作,得到任一解密字符串各自对应的多个预设位数的二进制数序列,组成任一解密字符串各自对应的二进制数序列集;
确定任一解密字符串各自对应的二进制数序列集中的每个预设位数的二进制数序列各自对应的解码数值,得到任一解密字符串各自对应的解码数值字符串;
利用任一解密字符串各自对应的解码数值字符串,得到任一解密字符串对应的分组用户信息字符串,其中任一解密字符串的长度小于与其对应的分组用户信息字符串长度;
利用所述分组用户信息字符串得到用户信息字符串明文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005658.0A CN110768785B (zh) | 2019-10-22 | 2019-10-22 | 一种编、解码方法、相关装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005658.0A CN110768785B (zh) | 2019-10-22 | 2019-10-22 | 一种编、解码方法、相关装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110768785A CN110768785A (zh) | 2020-02-07 |
CN110768785B true CN110768785B (zh) | 2023-05-02 |
Family
ID=69332851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911005658.0A Active CN110768785B (zh) | 2019-10-22 | 2019-10-22 | 一种编、解码方法、相关装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110768785B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422491A (zh) * | 2020-05-08 | 2021-02-26 | 上海幻电信息科技有限公司 | 数字编码的加密解密方法、服务器和存储介质 |
CN111931205A (zh) * | 2020-07-24 | 2020-11-13 | 北京沃东天骏信息技术有限公司 | 一种加密着色器文件的方法和装置 |
CN112364015B (zh) * | 2020-10-27 | 2024-02-23 | 北京新数科技有限公司 | 一种SQL语句唯一性hashID的计算方法和装置 |
CN112329393A (zh) * | 2020-11-05 | 2021-02-05 | 广东科徕尼智能科技有限公司 | 一种短码id的生成方法、设备、存储介质 |
CN113656816B (zh) * | 2021-08-13 | 2022-08-05 | 南京联创数据科技有限公司 | 一种文本加密方法 |
CN115296879B (zh) * | 2022-07-27 | 2023-04-18 | 杭州跃马森创信息科技有限公司 | 一种用于微服务的加密认证方法及系统 |
CN116484407B (zh) * | 2023-04-23 | 2024-03-22 | 深圳市天下房仓科技有限公司 | 一种数据安全保护方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3373984B2 (ja) * | 1995-08-28 | 2003-02-04 | 三洋電機株式会社 | デジタル信号受信装置 |
US7200232B2 (en) * | 2000-03-09 | 2007-04-03 | Hitachi, Ltd. | Method and apparatus for symmetric-key decryption |
US7200227B2 (en) * | 2001-07-30 | 2007-04-03 | Phillip Rogaway | Method and apparatus for facilitating efficient authenticated encryption |
TW201108173A (en) * | 2009-08-20 | 2011-03-01 | Hon Hai Prec Ind Co Ltd | Encrypting method and decrypting method corresponding to the encrypting method |
EP2442482B1 (en) * | 2009-06-12 | 2016-09-14 | Data Assurance And Communication Security Center, Chinese Academy of Sciences | Method and device for implementing stream cipher |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6196466B1 (en) * | 1998-06-09 | 2001-03-06 | Symbol Technologies, Inc. | Data compression method using multiple base number systems |
AU2003252595A1 (en) * | 2002-10-07 | 2004-04-23 | Kobayashi, Akira | Pseudo-random number generation method and pseudo-random number generator |
CN1988441A (zh) * | 2005-12-21 | 2007-06-27 | 中国银联股份有限公司 | 数据安全传输的方法 |
CN102904711B (zh) * | 2011-07-25 | 2016-02-03 | 深圳市金溢科技股份有限公司 | 信息加密方法 |
CN103684760B (zh) * | 2012-09-24 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 通信的加密和解密的方法、装置及系统 |
CN105306063B (zh) * | 2015-10-12 | 2018-11-02 | 浙江大学 | 一种记录型数据存储空间的优化与恢复方法 |
CN105553934B (zh) * | 2015-12-01 | 2018-11-02 | 辽宁中科信科技有限公司 | 基于云平台saas层eab万能编解码方法 |
CN110299989B (zh) * | 2019-06-10 | 2022-04-01 | 南通大学 | 一种中英文字符串的加密、解密方法 |
-
2019
- 2019-10-22 CN CN201911005658.0A patent/CN110768785B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3373984B2 (ja) * | 1995-08-28 | 2003-02-04 | 三洋電機株式会社 | デジタル信号受信装置 |
US7200232B2 (en) * | 2000-03-09 | 2007-04-03 | Hitachi, Ltd. | Method and apparatus for symmetric-key decryption |
US7200227B2 (en) * | 2001-07-30 | 2007-04-03 | Phillip Rogaway | Method and apparatus for facilitating efficient authenticated encryption |
EP2442482B1 (en) * | 2009-06-12 | 2016-09-14 | Data Assurance And Communication Security Center, Chinese Academy of Sciences | Method and device for implementing stream cipher |
TW201108173A (en) * | 2009-08-20 | 2011-03-01 | Hon Hai Prec Ind Co Ltd | Encrypting method and decrypting method corresponding to the encrypting method |
Non-Patent Citations (2)
Title |
---|
How Practical is Homomorphically Encrypted Program Execution? An Implementation and Performance Evaluation;Michael Brenner ect.;《2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications》;全文 * |
分组密码的硬件实现;唐明;汪波;杨欣;张焕国;;哈尔滨工业大学学报(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110768785A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110768785B (zh) | 一种编、解码方法、相关装置及计算机设备 | |
CN113225449B (zh) | 一种基于混沌序列和dna编码的图像加密方法 | |
US7801307B2 (en) | Method of symmetric key data encryption | |
CN107154851B (zh) | 一种数据加密和解密的方法及装置 | |
WO2006121149A1 (ja) | 擬似乱数発生システム、暗号化システム及び復号化システム | |
CN115941189B (zh) | 一种用于文档数据的加密方法 | |
RU2124814C1 (ru) | Способ шифрования блоков цифровых данных | |
CN116418481A (zh) | 一种文本隐私数据双重加密保护方法、装置及设备 | |
CN111753317A (zh) | 一种等长数字加密的实现方法 | |
KR100411912B1 (ko) | 이산 데이터 블록 암호화 방법 | |
CN112769545B (zh) | 基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法 | |
CN111211887B (zh) | 资源加密方法、系统、装置及计算机可读存储介质 | |
CN113254971B (zh) | 一种基于揭序加密的多数据类型密文比较方法 | |
JP3959062B2 (ja) | 移動通信システムのデータシンボルマッピング及び拡散装置 | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
CN115134471A (zh) | 图像加密、解密方法以及相关设备 | |
CN114239779A (zh) | 一种数据传输方法、传输系统、采集设备及接收设备 | |
Al-Jarrah et al. | Word-based encryption algorithm using dictionary indexing with variable encryption key length | |
CN112202548A (zh) | 流加密密钥流生成方法、装置、电路和加密方法 | |
CN115834163B (zh) | 加密数据的秘钥生成方法、装置、设备及存储介质 | |
CN115208667B (zh) | 通过混合编程实现芯片与文件进行双重加密解密方法 | |
CN117459221A (zh) | 数据加密方法及装置、数据解密方法及装置、电子设备 | |
RU2140716C1 (ru) | Способ криптографического преобразования блоков цифровых данных | |
CN117057804B (zh) | 基于哈希序列的金融交易数据安全存储方法及系统 | |
JPH1152850A (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 |