CN118349496A - 一种数据加密方法、解密方法、电子设备及存储介质 - Google Patents

一种数据加密方法、解密方法、电子设备及存储介质 Download PDF

Info

Publication number
CN118349496A
CN118349496A CN202410312014.0A CN202410312014A CN118349496A CN 118349496 A CN118349496 A CN 118349496A CN 202410312014 A CN202410312014 A CN 202410312014A CN 118349496 A CN118349496 A CN 118349496A
Authority
CN
China
Prior art keywords
data
length
initial vector
key
standard
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
Application number
CN202410312014.0A
Other languages
English (en)
Inventor
赵子熙
康兴锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Tianjin Co Ltd
Original Assignee
Spreadtrum Communications Tianjin Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Spreadtrum Communications Tianjin Co Ltd filed Critical Spreadtrum Communications Tianjin Co Ltd
Priority to CN202410312014.0A priority Critical patent/CN118349496A/zh
Publication of CN118349496A publication Critical patent/CN118349496A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请提供一种数据加密方法、解密方法、电子设备及存储介质,该方法包括:获取待加密数据和密钥数据,所述待加密数据包括明文数据;初始化第一内存区域,所述第一内存区域用于存储所述待加密数据和所述密钥数据;在所述第一内存区域中,使用所述密钥数据加密所述待加密数据,得到密文数据。本申请提供的方法,有助于解决信息在加解密过程中安全性较低和效率较低的问题。

Description

一种数据加密方法、解密方法、电子设备及存储介质
技术领域
本申请涉及信息安全技术领域,尤其涉及提供一种数据加密、电子设备及存储介质和一种数据解密方法、电子设备及存储介质。
背景技术
随着计算机、手机等终端电子设备,以及云存储技术的日益发展及广泛应用,数据安全性问题日益得到重视。现有技术中常用的方式是对数据进行数据加密,数据加密又称密码学,指通过加密算法和加密密钥将明文转换成密文,而解密则是反向的通过解密算法和解密密钥将密文还原成原文。数据加密利用密码技术对信息进行加密,实现信息隐蔽,保护信息安全。
随着加密算法的演进,分组加密算法对数据进行分组加密,增加了数据解密难度,然而,采取固定的加密算法和密钥进行加密,在确定加密算法和密钥后,明文和密码形成对应关系,可以采用穷举法等暴力方式破解,安全度有待提高。
在现有技术中,对数据进行加解密时并未开辟较为安全的内存区域,而是直接通过算法对其进行加解密,这就会导致信息数据会在加解密的过程中产生安全性的问题。有鉴于此,亟需一种安全且高效的数据信息加解密方法。
发明内容
本申请提供了一种数据加密、电子设备及存储介质和一种数据解密方法、电子设备及存储介质,有助于解决信息在加解密过程中安全性较低和效率较低的问题。
第一方面,本申请提供了一种数据加密方法,方法包括:
获取待加密数据和密钥数据,所述待加密数据包括明文数据;初始化第一内存区域,所述第一内存区域用于存储所述待加密数据和所述密钥数据;在所述第一内存区域中,使用所述密钥数据加密所述待加密数据,得到密文数据。
其中一种可能的实现方式中,所述方法还包括:获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;验证所述密钥数据的长度和所述初始向量数据的长度;基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
其中一种可能的实现方式中,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;其中,所述标准密钥数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;其中,所述标准初始向量数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,在所述使用所述密钥数据加密所述待加密数据之前,所述方法还包括:初始化所述待加密数据;验证所述待加密数据的长度;若所述待加密数据的长度小于标准长度,则填充所述待加密数据,其中,所述标准长度由目标算法库确定,填充后的待加密数据的长度等于所述标准长度。
其中一种可能的实现方式中,所述待加密数据为非十六进制数据,所述密文数据为非十六进制密文,在所述使用所述密钥数据加密所述待加密数据,得到密文数据之后,所述方法还包括:基于十六进制编码规则,编码所述密文数据,得到十六进制密文数据。
第二方面,本申请提供了一种数据解密方法,所述方法包括:获取待解密数据和密钥数据,所述待解密数据包括密文数据;确认所述待解密数据进制与目标算法进制是否一致,其中,所述目标算法进制由目标算法库确定;若所述待解密数据进制与目标算法进制一致;则初始化第二内存区域,所述第二内存区域用于存储所述待解密数据和所述密钥数据;在所述第二内存区域中,使用所述密钥数据解密所述待解密数据,得到明文数据。
其中一种可能的实现方式中,所述方法还包括获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;验证所述密钥数据的长度和所述初始向量数据的长度;基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
其中一种可能的实现方式中,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;其中,所述标准密钥数据的长度由调用的所述目标算法库确定。
其中一种可能的实现方式中,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;其中,所述标准初始向量数据的长度由调用的所述目标算法库确定。
其中一种可能的实现方式中,在所述使用所述密钥数据解密所述待解密数据之前,所述方法还包括:初始化所述待解密数据;验证所述待解密数据的长度;若所述待解密数据的长度小于标准长度,则填充所述待解密数据,其中,所述标准长度由目标算法库确定,填充后的待解密数据的长度等于所述标准长度。
其中一种可能的实现方式中,所述待解密数据为十六进制数据,所述明文数据为十六进制明文,所述使用所述密钥数据解密所述待解密数据,得到明文数据包括:使用所述密钥数据解密所述待解密数据,得到第一明文数据,所述第一明文数据为十六进制数据;将所述第一明文数据解码为第二明文数据,所述第二明文数据的进制为所述密文数据的进制。
第三方面,本申请提供一种数据加密装置,包括:
获取模块,所述获取模块用于获取待加密数据和密钥数据,所述待加密数据包括明文数据;
初始化模块,所述初始化模块用于初始化第一内存区域,所述第一内存区域用于存储所述待加密数据和所述密钥数据;
加密模块,所述加密模块用于在所述第一内存区域中,使用所述密钥数据加密所述待加密数据,得到密文数据。
其中一种可能的实现方式中,所述获取模块还用于获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;
所述数据加密装置还包括验证模块,所述验证模块还用于验证所述密钥数据的长度和所述初始向量数据的长度;基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
其中一种可能的实现方式中,所述验证模块还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;其中,所述标准密钥数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述验证模块还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;其中,所述标准初始向量数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述初始化模块还用于初始化所述待加密数据;所述验证模块还用于验证所述待加密数据的长度;若所述待加密数据的长度小于标准长度,则填充所述待加密数据,其中,所述标准长度由目标算法库确定,填充后的待加密数据的长度等于所述标准长度。
其中一种可能的实现方式中,所述数据加密装置还包括编码模块,所述编码模块还用于基于十六进制编码规则,编码所述密文数据,得到十六进制密文数据。
第四方面,本申请提供一种数据解密装置,包括:
获取模块,所述获取模块用于获取待解密数据和密钥数据,所述待解密数据包括密文数据;
确认模块,所述确认模块用于确认所述待解密数据进制与目标算法进制是否一致,其中,所述目标算法进制由目标算法库确定;
初始化模块,所述初始化模块用于若所述待解密数据进制与目标算法进制一致;则初始化第二内存区域,所述第二内存区域用于存储所述待解密数据和所述密钥数据;
解密模块,所述解密模块在所述第二内存区域中,使用所述密钥数据解密所述待解密数据,得到明文数据。
其中一种可能的实现方式中,所述获取模块还用于获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;
所述数据解密装置还包括验证模块,所述验证模块还用于验证所述密钥数据的长度和所述初始向量数据的长度;基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
其中一种可能的实现方式中,所述验证模块还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;其中,所述标准密钥数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述验证模块还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;其中,所述标准初始向量数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述初始化模块还用于初始化所述待解密数据;所述验证模块还用于验证所述待解密数据的长度;若所述待解密数据的长度小于标准长度,则填充所述待解密数据,其中,所述标准长度由目标算法库确定,填充后的待解密数据的长度等于所述标准长度。
其中一种可能的实现方式中,所述解密模块还用于使用所述密钥数据解密所述待解密数据,得到第一明文数据,所述第一明文数据为十六进制数据;
所述数据解密装置还包括解码模块,所述解码模块用于将所述第一明文数据解码为第二明文数据,所述第二明文数据的进制为所述密文数据的进制。
第五方面本申请提供了一种电子设备,包括:处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于运行所述计算机程序,实现如第一方面所述的数据加密方法或如第二方面所述的数据解密方法。
第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机实现如第一方面所述的数据加密方法或如第二方面所述的数据解密方法。
附图说明
图1为本申请提供的数据加密方法一个实施例的流程示意图;
图2为本申请提供的数据解密方法一个实施例的流程示意图;
图3为本申请中实施例提供的一种数据加密装置的结构示意图;
图4为本申请中实施例提供的一种数据解密装置的结构示意图;
图5为本申请中实施例提供的一种电子设备的结构示意图。
具体实施方式
本申请实施例中,除非另有说明,字符“/”表示前后关联对象是一种或的关系。例如,A/B可以表示A或B。“和/或”描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
需要指出的是,本申请实施例中涉及的“第一”、“第二”等词汇,仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,也不能理解为指示或暗示顺序。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。此外,“以下至少一项(个)”或者其类似表达,是指的这些项中的任意组合,可以包括单项(个)或复数项(个)的任意组合。例如,A、B或C中的至少一项(个),可以表示:A,B,C,A和B,A和C,B和C,或A、B和C。其中,A、B、C中的每个本身可以是元素,也可以是包含一个或多个元素的集合。
本申请实施例中,“示例的”、“在一些实施例中”、“在另一实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中的“的(of)”、“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,所要表达的含义是一致的。本申请实施例中,通信、传输有时可以混用,应当指出的是,在不强调其区别时,其所表达的含义是一致的。例如,传输可以包括发送和/或接收,可以为名词,也可以是动词。
本申请实施例中涉及的等于可以与大于连用,适用于大于时所采用的技术方案,也可以与小于连用,适用于小于时所采用的技术方案。需要说明的是,当等于与大于连用时,不能与小于连用;当等于与小于连用时,不与大于连用。
在现有技术中,算法库由于多年持续更新迭代,对加密逻辑的操作逐渐细化,操作粒度变得更细更复杂,直接上手难度很高,且现有技术在对数据进行加解密时并未开辟较为安全的内存区域,而是直接通过算法对其进行加解密,这就会导致信息数据会在加解密的过程中产生安全性的问题。有鉴于此,亟需一种安全且高效的数据信息加解密方法。
基于上述问题,本申请实施例提出了一种数据加密和数据解密方法,应用于电子设备。
现结合图1对本申请实施例提供的数据加密方法进行说明。
图1为本申请提供的数据加密方法一个实施例的流程示意图。具体包括以下步骤:
步骤S110,获取待加密数据和密钥数据,待加密数据包括明文数据。
具体地,本申请中的实施例提出了一种数据加密方法,其中,本申请中提出的算法库包括但不限于crypto密码库,crypto密码库是一种由c++语言编写的密码类库,具有广泛的密码学功能,crypto密码库可以用于安全通信、数据加密、数字签名、密码学研究等领域。
本申请中提出的数据加密的方式可以包括对称加密方法和非对称加密方法,其中,对称加密方法是采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。对称加密方法需要对加密和解密使用相同密钥的加密算法。由于其加密速度快,对称加密方法通常在消息发送方需要加密大量数据时使用。对称加密方法也称为单密钥加密。对称加密方法就是加密双方使用方式用同样的密钥进行加密和解密。
非对称加密方法与对称加密方法不同,非对称加密方法需要两个密钥,公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。即非对称加密方法中加密和解密使用的是两个不同的密钥,非对称加密方法用于通讯双方在媒体上交换信息,安全地达成一致的密钥。非对称加密方法也被称为公钥加密。
可选的,对称加密方法可以包括电码本模式加密方法、密码分组链接模式加密方法、计算器模式加密方法、密码反馈模式加密方法和输出反馈模式加密方法等。
其中,电码本模式加密方法是将整个明文分成若干段相同的小段,然后对每一小段进行加密。密码分组链接模式加密方法是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。计算器模式加密方法有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文。该加密方式简单快速,安全可靠,而且可以并行加密,但是该加密方式中的密钥只能使用一次。密码反馈模式加密方法会将前一个密文分组送回到密码算法的输入端进行加密。输出反馈模式加密方法中密码算法的输出会反馈到密码算法的输入中继续进行加密。
本申请中的实施例提出了一种数据加密方法,首先,获取待加密数据和密钥数据,待加密数据包括明文数据,接着获取初始向量数据,初始向量数据用于与密钥数据匹配,其中初始向量数据与密钥数据是一一对应的,初始向量数据与密钥数据为可以为用户预先输入的初始向量数据和密钥数据。
步骤S120,初始化第一内存区域,第一内存区域用于存储待加密数据和密钥数据。
具体地,本申请中的实施例提出在获取了待加密数据、密钥数据和初始向量数据之后,初始化安全运行时的第一内存区域,第一内存区域用于存储待加密数据、密钥数据和初始向量数据。第一内存区域外界无法访问,具有安全性高的特点,且第一内存区域会自动分配内存区域,即自动分配初始化后的待加密数据存储区域、初始化后的密钥数据存储区域和初始化后的初始向量数据存储区域,且会定时的清除过期的内存区域,以保证第一内存区域的安全性与稳定性。
可选的,本申请中的实施例提出验证密钥数据的长度和初始向量数据的长度,基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
具体地,判断密钥数据的长度是否处于标准密钥数据的长度区间内,若密钥数据的长度小于标准密钥数据的长度,则填充密钥数据,其中,填充后的密钥数据的长度等于标准密钥数据的长度;若密钥数据的长度大于标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于标准密钥数据的长度。其中,标准密钥数据的长度由调用的目标算法库确定,经过判断的符合标准要求的密钥数据据存储到初始化后的密钥数据存储区域备用。本申请中提出的目标算法库可以包括crypto密码库,也可以为其它算法库,本申请中对此不作特殊的限定。
判断初始向量数据的长度是否处于标准初始向量数据的长度区间内,若初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于标准初始向量数据的长度;若初始向量数据的长度大于标准初始向量数据的长度,则缩减初始向量数据,其中,缩减后的初始向量数据的长度等于标准初始向量数据的长度;其中,标准初始向量数据的长度由调用的目标算法库确定,将经过判断的符合标准要求初始向量数据存储到初始化后的初始向量数据存储区域中备用。本申请中提出的目标算法库可以包括crypto密码库,也可以为其它算法库,本申请中对此不作特殊的限定。
步骤S130,在第一内存区域中,使用密钥数据加密所述待加密数据,得到密文数据。
具体地,本申请中的实施例提出了使用密钥数据加密所述待加密数据之前,使用目标算法库中的块加密初始化算法初始化待加密数据;使用目标算法库中的流加密和块加密验证算法验证经过初始化后的待加密数据的长度;若所述待加密数据的长度小于标准长度,则填充待加密数据,其中,标准长度由目标算法库中的最小加密单元确定,填充后的待加密数据的长度等于标准长度。本申请中对初始化算法和验证算法不作具体地限定,能起到同样技术效果的初始化算法和验证算法均在本申请的保护范围内。
进一步地,本申请中的实施例提出在第一内存区域中,使用密钥数据加密所述待加密数据,得到密文数据。
可选的,本申请中的一个实施例提出初始化密文数据的指针内存,该指针地址用于指向经过加密后的待加密数据的地址,在基于目标算法库中的算法对待加密数据进行加密后,从密文数据的指针中获得经过加密后的密文数据。
可选的,本申请中的另一个实施例提出在第一内存区域中,使用密钥数据加密所述待加密数据,得到密文数据之后。若待加密数据为非目标进制数据,加密后的密文数据为非目标进制数据,则还可以对密文数据进行编码,将密文数据转换为目标进制密文数据。
示例性的,本申请中的一个实施例以目标进制数据为十六进制数据为例,若待加密数据为二进制数据、八进制数据、十进制数据等非十六进制数据;加密后的密文数据为二进制数据、八进制数据、十进制数据等非十六进制数据,则还可以对密文数据进行编码,将密文数据转换为十六进制密文数据。若待加密数据为十六进制数据;加密后的密文数据为十六进制数据,则无需对密文数据进行编码。将非十六进制编码为十六进制数据可以压缩数据的空间,节省内存,同时也可以加快数据的传输速度,提高数据传输的效率。
接着,结合图2对本申请实施例提供的数据解密方法进行说明。
图2为本申请提供的数据加密方法一个实施例的流程示意图。具体包括以下步骤:
步骤S210,获取待解密数据和密钥数据,待解密数据包括密文数据。
具体地,本申请中的实施例提出了一种数据解密方法,首先,取待解密数据和密钥数据,待解密数据包括密文数据,接着获取初始向量数据,初始向量数据用于与密钥数据匹配,其中初始向量数据与密钥数据是一一对应的,初始向量数据与密钥数据为可以为用户预先输入的初始向量数据和密钥数据。
步骤S220,确认待解密数据进制与目标算法进制是否一致,其中,目标算法进制由目标算法库确定。
具体地,本申请中的实施例提出待解密数据的进制要与目标算法库中的目标算法进制一致才能对待解密数据进行解密,若待解密数据进制与目标算法进制一致,则继续进行后续的解密操作,若待解密数据进制与目标算法进制不一致,则直接过滤待解密数据,不再进行后续解密操作。
示例性的,本申请中的实施例以目标算法库中的目标算法进制为十六进制为例,确定待解密数据进制是否为十六进制,若待解密数据进制与目标算法进制一致为十六进制,则继续进行后续的解密操作;若待解密数据进制与目标算法进制不一致为非十六进制数据,则直接过滤待解密数据,不再进行后续解密操作。
步骤S230,若待解密数据进制与目标算法进制一致,则初始化第二内存区域,第二内存区域用于存储待解密数据和所述密钥数据。
具体地,本申请中的实施例提出在确认解密数据进制与目标算法进制一致之后,初始化安全运行时的第二内存区域,第二内存区域用于存储待解密数据、密钥数据和初始向量数据。第二内存区域外界无法访问,具有安全性高的特点,且第二内存区域会自动分配内存区域,即自动分配初始化后的待解密数据存储区域、初始化后的密钥数据存储区域和初始化后的初始向量数据存储区域,且会定时的清除过期的内存区域,以保证第二内存区域的安全性与稳定性。
可选的,本申请中的实施例提出验证密钥数据的长度和初始向量数据的长度,基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
具体地,判断密钥数据的长度是否处于标准密钥数据的长度区间内,若密钥数据的长度小于标准密钥数据的长度,则填充密钥数据,其中,填充后的密钥数据的长度等于标准密钥数据的长度;若密钥数据的长度大于标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于标准密钥数据的长度。其中,标准密钥数据的长度由调用的目标算法库确定,经过判断的符合标准要求的密钥数据据存储到初始化后的密钥数据存储区域备用。本申请中提出的目标算法库可以包括crypto密码库,也可以为其它算法库,本申请中对此不作特殊的限定。
判断初始向量数据的长度是否处于标准初始向量数据的长度区间内,若初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于标准初始向量数据的长度;若初始向量数据的长度大于标准初始向量数据的长度,则缩减初始向量数据,其中,缩减后的初始向量数据的长度等于标准初始向量数据的长度;其中,标准初始向量数据的长度由调用的目标算法库确定,将经过判断的符合标准要求初始向量数据存储到初始化后的初始向量数据存储区域中备用。本申请中提出的目标算法库可以包括crypto密码库,也可以为其它算法库,本申请中对此不作特殊的限定。
步骤S240,在第二内存区域中,使用密钥数据解密所述待解密数据,得到明文数据。
具体地,本申请中的实施例提出了使用密钥数据解密所述待解密数据之前,使用目标算法库中的块解密初始化算法初始化待解密数据;使用目标算法库中的流解密和块解密验证算法验证经过初始化后的待解密数据的长度;若所述待解密数据的长度小于标准长度,则填充待解密数据,其中,标准长度由目标算法库中的最小解密单元确定,填充后的待解密数据的长度等于标准长度。本申请中对初始化算法和验证算法不作具体地限定,能起到同样技术效果的初始化算法和验证算法均在本申请的保护范围内。
进一步地,本申请中的实施例提出在第二内存区域中,使用密钥数据解密所述待解密数据,得到明文数据。
可选的,本申请中的一个实施例提出初始化明文数据的指针内存,该指针地址用于指向经过解密后的待解密数据的地址,在基于目标算法库中的算法对待解密数据进行解密后,从密文数据的指针中获得经过解密后的明文数据。
进一步地,本申请中的一个实施例提出在第二内存区域中,使用密钥数据解密所述待解密数据,得到明文数据之后。还要需要对明文数据进行解码,将明文数据转换为目标进制明文数据。
示例性的,本申请中的一个实施例以目标进制数据为非十六进制数据为例,若待解密数据十六进制数据,则经过解密得到的第一明文数据为十六进制数据,还可以对第一明文数据进行解码,将第一明文数据转换为第二明文数据,第二明文数据的进制为非十六进制明文数据,也就是待解密数据中的密文数据的进制,即将解密后的用于通信的明文数据进行解码操作,将解密后的明文数据转换成操作人员需要的数据进制格式,解码后的明文数据为真实的可阅读的解码明文数据。
图3为本申请数据加密装置一个实施例的结构示意图,如图3所示,上述装置30可以包括:
获取模块31,所述获取模块31用于获取待加密数据和密钥数据,所述待加密数据包括明文数据;
初始化模块32,所述初始化模块32用于初始化第一内存区域,所述第一内存区域用于存储所述待加密数据和所述密钥数据;
加密模块33,所述加密模块33用于在所述第一内存区域中,使用所述密钥数据加密所述待加密数据,得到密文数据。
其中一种可能的实现方式中,所述获取模块31还用于获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;
所述数据加密装置还包括验证模块34,所述验证模块34还用于验证所述密钥数据的长度和所述初始向量数据的长度;基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
其中一种可能的实现方式中,所述验证模块34还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;其中,所述标准密钥数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述验证模块34还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;其中,所述标准初始向量数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述初始化模块32还用于初始化所述待加密数据;所述验证模块还用于验证所述待加密数据的长度;若所述待加密数据的长度小于标准长度,则填充所述待加密数据,其中,所述标准长度由目标算法库确定,填充后的待加密数据的长度等于所述标准长度。
其中一种可能的实现方式中,所述数据加密装置还包括编码模块35,所述编码模块35还用于基于十六进制编码规则,编码所述密文数据,得到十六进制密文数据。
本发明实施例所提供的数据加密装置可执行本发明任意实施例所提供的数据加密方法,具备执行方法相应的功能模块和有益效果,相同之处可参照上文对本发明实施例提供的数据加密方法的描述,在此不再赘述。
图4为本申请数据加密装置一个实施例的结构示意图,如图4所示,上述装置40可以包括:
获取模块41,所述获取模块41用于获取待解密数据和密钥数据,所述待解密数据包括密文数据;
确认模块42,所述确认模块42用于确认所述待解密数据进制与目标算法进制是否一致,其中,所述目标算法进制由目标算法库确定;
初始化模块43,所述初始化模块43用于若所述待解密数据进制与目标算法进制一致;则初始化第二内存区域,所述第二内存区域用于存储所述待解密数据和所述密钥数据;
解密模块44,所述解密模块44在所述第二内存区域中,使用所述密钥数据解密所述待解密数据,得到明文数据。
其中一种可能的实现方式中,所述获取模块41还用于获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;
所述数据解密装置还包括验证模块45,所述验证模块45还用于验证所述密钥数据的长度和所述初始向量数据的长度;基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
其中一种可能的实现方式中,所述验证模块45还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;其中,所述标准密钥数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述验证模块45还用于基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度;若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;其中,所述标准初始向量数据的长度由调用的目标算法库确定。
其中一种可能的实现方式中,所述初始化模块43还用于初始化所述待解密数据;所述验证模块还用于验证所述待解密数据的长度;若所述待解密数据的长度小于标准长度,则填充所述待解密数据,其中,所述标准长度由目标算法库确定,填充后的待解密数据的长度等于所述标准长度。
其中一种可能的实现方式中,所述解密模块44还用于使用所述密钥数据解密所述待解密数据,得到第一明文数据,所述第一明文数据为十六进制数据;
所述数据解密装置还包括解码模块46,所述解码模块46用于将所述第一明文数据解码为第二明文数据,所述第二明文数据的进制为所述密文数据的进制。
本发明实施例所提供的数据解密装置可执行本发明任意实施例所提供的数据解密方法,具备执行方法相应的功能模块和有益效果,相同之处可参照上文对本发明实施例提供的数据解密方法的描述,在此不再赘述。
下面结合图5进一步介绍本申请实施例中提供的示例性电子设备。图5示出了电子设备500的结构示意图。
上述电子设备500可以包括:至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:上述存储器存储有可被上述处理器执行的程序指令,处理器调用上述程序指令能够执行本申请所示实施例提供的数据加密方法或数据解密方法。
图5示出了适用于实现本申请实施方式的示例性电子设备500的框图。图5显示的电子设备500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:一个或者多个处理器510,存储520,连接不同系统组件(包括存储器520和处理器510)的通信总线540以及通信接口530。
通信总线540表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备500典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器520可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read Only Memory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与通信总线540相连。存储器520可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器520中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本申请所描述的实施例中的功能和/或方法。
电子设备500也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过通信接口530进行。并且,电子设备500还可以通过网络适配器(图5中未示出)与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信,上述网络适配器可以通过通信总线540与电子设备的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Drives;以下简称:RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器510通过运行存储在存储器520中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的方法。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备500的结构限定。在本申请另一些实施例中,电子设备500也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
以上各实施例中,涉及的处理器可以例如包括CPU、DSP、微控制器或数字信号处理器,还可包括GPU、嵌入式神经网络处理器(Neural-network Process Units;以下简称:NPU)和图像信号处理器(Image Signal Processing;以下简称:ISP),该处理器还可包括必要的硬件加速器或逻辑处理硬件电路,如ASIC,或一个或多个用于控制本申请技术方案程序执行的集成电路等。此外,处理器可以具有操作一个或多个软件程序的功能,软件程序可以存储在存储介质中。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请所示实施例提供的加密方法或解密方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请所示实施例提供的加密方法或解密方法。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种数据加密方法,其特征在于,应用于电子设备,所述方法包括:
获取待加密数据和密钥数据,所述待加密数据包括明文数据;
初始化第一内存区域,所述第一内存区域用于存储所述待加密数据和所述密钥数据;
在所述第一内存区域中,使用所述密钥数据加密所述待加密数据,得到密文数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;
验证所述密钥数据的长度和所述初始向量数据的长度;
基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
3.根据权利要求2所述的方法,其特征在于,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:
若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;
若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;
其中,所述标准密钥数据的长度由调用的目标算法库确定。
4.根据权利要求2所述的方法,其特征在于,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:
若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;
若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;
其中,所述标准初始向量数据的长度由调用的目标算法库确定。
5.根据权利要求1所述的方法,其特征在于,在所述使用所述密钥数据加密所述待加密数据之前,所述方法还包括:
初始化所述待加密数据;
验证所述待加密数据的长度;
若所述待加密数据的长度小于标准长度,则填充所述待加密数据,其中,所述标准长度由目标算法库确定,填充后的待加密数据的长度等于所述标准长度。
6.根据权利要求1所述的方法,其特征在于,所述待加密数据为非十六进制数据,所述密文数据为非十六进制密文,在所述使用所述密钥数据加密所述待加密数据,得到密文数据之后,所述方法还包括:
基于十六进制编码规则,编码所述密文数据,得到十六进制密文数据。
7.一种数据解密方法,其特征在于,应用于电子设备,所述方法包括:
获取待解密数据和密钥数据,所述待解密数据包括密文数据;
确认所述待解密数据进制与目标算法进制是否一致,其中,所述目标算法进制由目标算法库确定;
若所述待解密数据进制与目标算法进制一致;则初始化第二内存区域,所述第二内存区域用于存储所述待解密数据和所述密钥数据;
在所述第二内存区域中,使用所述密钥数据解密所述待解密数据,得到明文数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取初始向量数据,所述初始向量数据用于与所述密钥数据匹配;
验证所述密钥数据的长度和所述初始向量数据的长度;
基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度。
9.根据权利要求8所述的方法,其特征在于,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:
若所述密钥数据的长度小于标准密钥数据的长度,则填充所述密钥数据,其中,填充后的密钥数据的长度等于所述标准密钥数据的长度;
若所述密钥数据的长度大于所述标准密钥数据的长度,则缩减所述密钥数据,其中,缩减后的密钥数据的长度等于所述标准密钥数据的长度;
其中,所述标准密钥数据的长度由调用的所述目标算法库确定。
10.根据权利要求8所述的方法,其特征在于,所述基于验证结果填充或缩减所述密钥数据的长度和所述初始向量数据的长度包括:
若所述初始向量数据的长度小于标准初始向量数据的长度,则填充所述初始向量数据,其中,填充后的初始向量数据的长度等于所述标准初始向量数据的长度;
若所述初始向量数据的长度大于所述标准初始向量数据的长度,则缩减所述初始向量数据,其中,缩减后的初始向量数据的长度等于所述标准初始向量数据的长度;
其中,所述标准初始向量数据的长度由调用的所述目标算法库确定。
11.根据权利要求8所述的方法,其特征在于,在所述使用所述密钥数据解密所述待解密数据之前,所述方法还包括:
初始化所述待解密数据;
验证所述待解密数据的长度;
若所述待解密数据的长度小于标准长度,则填充所述待解密数据,其中,所述标准长度由目标算法库确定,填充后的待解密数据的长度等于所述标准长度。
12.根据权利要求8所述的方法,其特征在于,所述待解密数据为十六进制数据,所述明文数据为十六进制明文,所述使用所述密钥数据解密所述待解密数据,得到明文数据包括:
使用所述密钥数据解密所述待解密数据,得到第一明文数据,所述第一明文数据为十六进制数据;
将所述第一明文数据解码为第二明文数据,所述第二明文数据的进制为所述密文数据的进制。
13.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于运行所述计算机程序,实现如权利要求1-6任一项所述的数据加密方法或如权利要求7-12任一项所述的数据解密方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在计算机上运行时,实现如权利要求1-6任一项所述的数据加密方法或如权利要求7-12任一项所述的数据解密方法。
CN202410312014.0A 2024-03-19 2024-03-19 一种数据加密方法、解密方法、电子设备及存储介质 Pending CN118349496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410312014.0A CN118349496A (zh) 2024-03-19 2024-03-19 一种数据加密方法、解密方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410312014.0A CN118349496A (zh) 2024-03-19 2024-03-19 一种数据加密方法、解密方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN118349496A true CN118349496A (zh) 2024-07-16

Family

ID=91819834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410312014.0A Pending CN118349496A (zh) 2024-03-19 2024-03-19 一种数据加密方法、解密方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN118349496A (zh)

Similar Documents

Publication Publication Date Title
CN110417726B (zh) 一种密钥管理方法及相关设备
CN109150499B (zh) 动态加密数据的方法、装置、计算机设备和存储介质
US8300828B2 (en) System and method for a derivation function for key per page
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN110138739B (zh) 数据信息加密方法、装置、计算机设备及存储介质
CN107612683B (zh) 一种加解密方法、装置、系统、设备和存储介质
EP3934295A2 (en) Key protection processing method, apparatus, device and storage medium
CN110868291B (zh) 一种数据加密传输方法、装置、系统及存储介质
US7894608B2 (en) Secure approach to send data from one system to another
CN112469036A (zh) 一种消息加解密方法、装置、移动终端和存储介质
CN114826590B (zh) 一种分组模式加密方法、解密方法及其装置、设备
CN113014580A (zh) 文件传输方法、装置、电子设备及存储介质
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN111368317B (zh) 一种计算机数据加密系统及方法
CN117714613A (zh) 一种图像加密方法、装置、电子设备和存储介质
CN111490876B (zh) 一种基于usb key的通信方法和usb key
US20080181397A1 (en) Secure data transmission and storage using limited-domain functions
Sharma et al. Compression and encryption: An integrated approach
CN115529192A (zh) 一种网络数据的安全传输方法、装置、设备及存储介质
Sunday et al. An efficient data protection for cloud storage through encryption
CN118349496A (zh) 一种数据加密方法、解密方法、电子设备及存储介质
CN114500006A (zh) 查询请求的处理方法及装置
CN108985079B (zh) 数据验证方法和验证系统
Kumari et al. One time pad encryption technique in cryptography

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