本申请涉及视频加解密技术领域,具体而言,涉及一种视频加解密方法、装置、电子设备及存储介质。
背景技术:
在课程视频资源的传输过程中,为避免课程视频资源的外泄,需要利用加解密算法对视频进行加解密,以提高课程视频资源传输的安全性,但是现有的单一加解密算法的安全性较低。
技术实现要素:
本申请实施例的目的在于提供一种视频加解密方法、装置、电子设备及存储介质,通过增加加密标识和算法版本号的方法,使得可以动态扩展更多的加解密算法,从而增强了加密的安全性,并能够根据算法版本号快速获取解密算法,提高加解密效率,解决了现有方法安全性较低且加解密效率较低的问题。
本申请实施例提供了一种视频加密方法,所述方法包括:
获取待加密的视频数据;
设置当前加密算法对应的当前算法版本号;
利用所述当前加密算法对所述视频数据进行加密,生成密文段;
根据预设的长度随机生成加密标识;
将所述加密标识、所述密文段和所述当前算法版本号组合以生成视频文件。
在上述实现过程中,将加密标识、密文段和当前算法版本号组合构成视频文件,并且加密标识是随机生成的,通过向密文段增加额外信息的方式提高了安全性,并且可以根据算法版本号快速获取解密算法提高了解密的效率,解决了现有方法安全性较低且加解密效率较低的问题。
进一步地,所述根据预设的长度随机生成加密标识,包括:
接收预先设置的加密标识的长度;
根据所述长度随机生成任意字符串,以将所述字符串作为加密标识。
在上述实现过程中,可以通过设置加密标识的长度并生成该长度的任意字符串,将该任意字符串作为加密标识,进一步增加了加密的安全性,加密标识长度也可以根据需要动态调整。
进一步地,所述方法还包括:
若所述视频数据的大小大于设定值,则将当前加密算法更换为具有较小时间复杂度的第二加密算法;
根据所述第二加密算法获取对应的第二算法版本号,以将所述第二算法版本号添加至利用所述二加密算法生成的密文段中。
在上述实现过程中,可以根据视频数据的大小更换加密算法,以提高加解密的效率,同时更换算法版本号,实现了加解密算法的动态升级,因此具有更好的安全性和灵活性。
本申请实施例还提供一种视频解密方法,所述方法包括:
读取视频文件;
判断是否有加密标识以确定所述视频文件是否为加密文件;
若是,则获取所述加密文件的加密算法信息,以匹配对应的解密算法;
根据所述加密标识、所述解密算法获取密文段;
利用所述解密算法对所述密文段进行解密,以获取视频数据。
在上述实现过程中,可以通过检测视频文件中是否有加密标识来确定是否为加密文件,如果是,则可以通过加密标识和加密算法信息快速得到密文段,并对其进行解密获得视频数据,提高解密的效率,将加密标识和加密算法信息一同传输,视频文件传输的安全性,解决了现有方法安全性较低且加解密效率较低的问题。
进一步地,所述判断是否有加密标识以确定所述视频文件是否为加密文件,包括:
根据预设的加密标识的长度和位置对视频文件进行检测,以确定所述视频文件是否有加密标识;
若有,则所述视频文件为加密文件。
在上述实现过程中,可以通过检测视频文件对应位置处是否加密标识来确定视频文件是否为加密文件。
进一步地,所述获取所述加密文件的加密算法信息,以匹配对应的解密算法,包括:
根据预设位置读取所述视频文件中的当前算法版本号;
根据所述当前算法版本号匹配对应的解密算法。
在上述实现过程中,通过当前算法版本号可以快速获得对应的匹配算法进行解密,并且将当前算法版本号与密文段一起组成视频文件,可以提高安全性。
本申请实施例还提供一种视频加密装置,所述装置包括:
数据获取模块,用于获取待加密的视频数据;
版本号设置模块,用于设置当前加密算法对应的当前算法版本号;
密文段生成模块,用于利用所述当前加密算法对所述视频数据进行加密,生成密文段;
标识生成模块,用于根据预设的长度随机生成加密标识;
视频文件生成模块,用于将所述加密标识、所述密文段和所述当前算法版本号组合以生成视频文件。
在上述实现过程中,在生成的密文段两端再加入加密标识和当前加密算法的当前算法版本号,组成视频文件进行传输,可以提高安全性,同时根据需要使用对应的加密算法进行加密,在解密的时候可以根据算法版本号快速匹配到对应的解密算法,因此提高效率,解决了现有方法安全性较低且加解密效率较低的问题。
本申请实施例还提供一种视频解密装置,所述装置包括:
读取模块,用于读取视频文件;
判断模块,用于判断是否有加密标识以确定所述视频文件是否为加密文件;
解密算法获取模块,用于若所述视频文件为加密文件,则获取所述加密文件的加密算法信息,以匹配对应的解密算法;
密文段获取模块,用于根据所述加密标识、所述加密算法信息获取密文段;
解密模块,用于利用所述解密算法对所述密文段进行解密,以获取视频数据。
在上述实现过程中,可以通过加密算法信息快速匹配到对应的解密算法,提高解密效率,通过加密标识和加密算法信息获取密文段,提高安全性。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行上述中任一项所述的视频加密方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的视频加密方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种视频加密算法流程图;
图2为本申请实施例提供的更换加密算法流程图;
图3为本申请实施例提供的随机生成加密标识的流程图;
图4为本申请实施例提供的视频文件的结构示意图;
图5为本申请实施例提供的解密流程图;
图6为本申请实施例提供的加密文件的判定过程流程图;
图7为本申请实施例提供的视频加密装置的结构框图;
图8为本申请实施例提供的视频加密装置的具体结构框图;
图9为本申请实施例提供的视频解密装置的结构框图;
图10为本申请实施例提供的视频解密装置的具体结构框图。
图标:
100-数据获取模块;200-版本号设置模块;201-加密算法更换模块;202-版本号获取模块;300-密文段生成模块;400-标识生成模块;401-长度设置模块;402-字符串生成模块;500-视频文件生成模块;610-读取模块;620-判断模块;621-标识检测模块;622-加密文件确定模块;630-解密算法获取模块;631-版本号读取模块;632-算法匹配模块;640-密文段获取模块;650-解密模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供的一种视频加密算法流程图。该方法应用于课程视频资源传输过程中,为防止课程视频资源外泄,需要对其进行加密传输,在接收端如手机接收到课程视频后能够快速解密,减少解密时间并提高解密效率。该方法具体包括以下步骤:
步骤s100:获取待加密的视频数据;
步骤s200:设置当前加密算法对应的当前算法版本号;
一方面,当前算法版本号可以进行自定义,增强其随机性,从而减小通过当前算法版本号获得解密算法的几率(当前算法版本号是要随着加密文件一起传输至接收端的),提高安全性;此外,当前算法版本号的长度还可以根据需要进行动态调整,如每隔一段时间调整其长度,也可以提高安全性。
另一方面,在加密时增加算法版本号的方法也可以动态扩展更多的加密算法,即根据需要随时更换不同的加密算法,从而进一步增强了加密的安全性,如图2所示,为更换加密算法流程图,该方法还包括:
步骤s201:若所述视频数据的大小大于设定值,则将当前加密算法更换为具有较小时间复杂度的第二加密算法;
步骤s202:根据所述第二加密算法获取对应的第二算法版本号,以将所述第二算法版本号添加至利用所述第二加密算法生成的密文段中。
在视频数据的文件较大时,如若采用aes、des等常用的加密算法将明显降低效率,因此,视频数据较小时采用耗时较大的较复杂的第一算法;视频数据较大时采用耗时较短的较简单的第二算法,以此来平衡加解密效率与安全性。示例地,可以根据不同视频数据的大小设定多个梯度的阈值,当在某个设定值的范围内采用对应时间复杂度的加密算法,以此来平衡算法加解密效率和安全性,并且通过该动态更换算法的方式也能提高加密的安全性。
因此,需要根据视频数据的大小使用合适的加密算法以提高加密和解密效率,特别是在手机端对较大的视频数据进行解密的情形下,更需要提高加解密算法的效率,相应地,算法版本号也会相应更换,接收端接收到的视频文件中携带的算法版本号也会随之更换,减小了获取视频文件中密文段的几率,从而提高了安全性,因此不仅提高了效率,而且还提高了安全性,此外,根据需要动态调整加解密算法,增强了算法使用的灵活性。
步骤s300:利用所述当前加密算法对所述视频数据进行加密,生成密文段;
示例地,使用当前算法版本号对应的如对称加密算法及秘钥对视频数据进行加密,生成密文段。
步骤s400:根据预设的长度随机生成加密标识;
如图3所示,为随机生成加密标识的流程图,该步骤具体可以包括:
步骤s401:接收预先设置的加密标识的长度;
步骤s402:根据所述长度随机生成任意字符串,以将所述字符串作为加密标识。
示例地,加密标识的长度是预先定义的,可以更换,即加密标识的长度可根据需要进行动态调整,加密标识长度的不确定性增强了安全性;在定义加密标识的长度之后,随机生成任意字符串并作为加密标识,进一步增强了安全性。
步骤s500:将所述加密标识、所述密文段和所述当前算法版本号组合以生成视频文件。
如图4所示,为视频文件的结构示意图,在密文段的两端可以分别添加加密标识和当前算法版本号,通过在密文段的头尾两端添加额外信息,为恶意解密行为增加了一层阻碍,从而提高了安全性;为了进一步提高安全性,可以任意调换密文段、加密标识和当前算法版本号三者之间的位置关系,以进一步提高安全性。
在接收端对视频文件进行解密,如图5所示,为解密流程图,具体可以包括以下步骤:
步骤s610:读取视频文件;
步骤s620:判断是否有加密标识以确定所述视频文件是否为加密文件;
如图6所示,为加密文件的判定过程流程图,步骤s620具体可以包括:
步骤s621:根据预设的加密标识的长度和位置对视频文件进行检测,以确定所述视频文件是否有加密标识;
步骤s622:若有,则所述视频文件为加密文件。
示例地,如果加密标识设置在密文段的左端,则读取视频文件的前16字节(预设的长度),可判断是否有加密标识,如若有加密标识则为加密文件,如果没有,则视频文件被视为未加密视频,停止解密操作。
步骤s630:若是,则获取所述加密文件的加密算法信息,以匹配对应的解密算法;
该步骤具体可以包括:
步骤s631:根据预设位置读取所述视频文件中的当前算法版本号;
步骤s632:根据所述当前算法版本号匹配对应的解密算法。
如若预设位置为视频文件的末端,则读取视频文件的后4字节,并解析为当前加密算法的当前算法版本号,根据当前算法版本号匹配到对应的解密算法。
步骤s640:根据所述加密标识、所述加密算法信息获取密文段;
步骤s650:利用所述解密算法对所述密文段进行解密,以获取视频数据。
如前述,获取到加密标识和当前算法版本号后,可以将视频文件截去前16字节和后4字节,即可得到密文段,再利用匹配到的解密算法对该密文段进行解密,即可得到视频数据。
实施例2
本申请实施例提供一种视频加密装置,如图7所示,为视频加密装置的结构框图,所述装置包括:
数据获取模块100,用于获取待加密的视频数据;
版本号设置模块200,用于设置当前加密算法对应的当前算法版本号;
密文段生成模块300,用于利用所述当前加密算法对所述视频数据进行加密,生成密文段;
标识生成模块400,用于根据预设的长度随机生成加密标识;
视频文件生成模块500,用于将所述加密标识、所述密文段和所述当前算法版本号组合以生成视频文件。
其中,如图8所示,为视频加密装置的具体结构框图,标识生成模块400包括:
长度设置模块401,用于接收预先设置的加密标识的长度;
字符串生成模块402,用于根据所述长度随机生成任意字符串,以将所述字符串作为加密标识。
该装置还包括:
加密算法更换模块201,用于若所述视频数据的大小大于设定值,则将当前加密算法更换为具有较小时间复杂度的第二加密算法;
版本号获取模块202,用于根据所述第二加密算法获取对应的第二算法版本号,以将所述第二算法版本号添加至利用所述第二加密算法生成的密文段中。
在生成的密文段两端再加入加密标识和当前加密算法的当前算法版本号,组成视频文件进行传输,可以提高安全性,同时根据需要使用对应的加密算法进行加密,在解密的时候可以根据算法版本号快速匹配到对应的解密算法,因此提高效率,解决了现有方法安全性较低且加解密效率较低的问题。
本申请实施例提供一种视频解密装置,如图9所示,为视频解密装置的结构框图,所述装置包括:
读取模块610,用于读取视频文件;
判断模块620,用于判断是否有加密标识以确定所述视频文件是否为加密文件;
解密算法获取模块630,用于若所述视频文件为加密文件,则获取所述加密文件的加密算法信息,以匹配对应的解密算法;
密文段获取模块640,用于根据所述加密标识、所述加密算法信息获取密文段;
解密模块650,用于利用所述解密算法对所述密文段进行解密,以获取视频数据。
其中,如图10所示,为视频解密装置的具体结构框图,判断模块620包括:
标识检测模块621,用于根据预设的加密标识的长度和位置对视频文件进行检测,以确定所述视频文件是否有加密标识;
加密文件确定模块622,若有加密标识,则所述视频文件为加密文件。
解密算法获取模块630包括:
版本号读取模块631,用于根据预设位置读取所述视频文件中的当前算法版本号;
算法匹配模块632,用于根据所述当前算法版本号匹配对应的解密算法。
可以通过加密算法信息快速匹配到对应的解密算法,提高解密效率,并通过检测加密标识和加密算法版本号截取密文段,对密文段进行解密,加密标识和加密算法版本号设置,提高了安全性,同时加密算法版本号可以快速匹配到解密算法,提高解密效率。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行实施例1中任一项所述的视频加密方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1中任一项所述的视频加密方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
1.一种视频加密方法,其特征在于,所述方法包括:
获取待加密的视频数据;
设置当前加密算法对应的当前算法版本号;
利用所述当前加密算法对所述视频数据进行加密,生成密文段;
根据预设的长度随机生成加密标识;
将所述加密标识、所述密文段和所述当前算法版本号组合以生成视频文件。
2.根据权利要求1所述的视频加密方法,其特征在于,所述根据预设的长度随机生成加密标识,包括:
接收预先设置的加密标识的长度;
根据所述长度随机生成任意字符串,以将所述字符串作为加密标识。
3.根据权利要求1所述的视频加密方法,其特征在于,所述方法还包括:
若所述视频数据的大小大于设定值,则将当前加密算法更换为具有较小时间复杂度的第二加密算法;
根据所述第二加密算法获取对应的第二算法版本号,以将所述第二算法版本号添加至利用所述第二加密算法生成的密文段中。
4.一种视频解密方法,其特征在于,所述方法包括:
读取视频文件;
判断是否有加密标识以确定所述视频文件是否为加密文件;
若是,则获取所述加密文件的加密算法信息,以匹配对应的解密算法;
根据所述加密标识、所述加密算法信息获取密文段;
利用所述解密算法对所述密文段进行解密,以获取视频数据。
5.根据权利要求4所述的视频解密方法,其特征在于,所述判断是否有加密标识以确定所述视频文件是否为加密文件,包括:
根据预设的加密标识的长度和位置对视频文件进行检测,以确定所述视频文件是否有加密标识;
若有,则所述视频文件为加密文件。
6.根据权利要求4所述的视频解密方法,其特征在于,所述获取所述加密文件的加密算法信息,以匹配对应的解密算法,包括:
根据预设位置读取所述视频文件中的当前算法版本号;
根据所述当前算法版本号匹配对应的解密算法。
7.一种视频加密装置,其特征在于,所述装置包括:
数据获取模块,用于获取待加密的视频数据;
版本号设置模块,用于设置当前加密算法对应的当前算法版本号;
密文段生成模块,用于利用所述当前加密算法对所述视频数据进行加密,生成密文段;
标识生成模块,用于根据预设的长度随机生成加密标识;
视频文件生成模块,用于将所述加密标识、所述密文段和所述当前算法版本号组合以生成视频文件。
8.一种视频解密装置,其特征在于,所述装置包括:
读取模块,用于读取视频文件;
判断模块,用于判断是否有加密标识以确定所述视频文件是否为加密文件;
解密算法获取模块,用于若所述视频文件为加密文件,则获取所述加密文件的加密算法信息,以匹配对应的解密算法;
密文段获取模块,用于根据所述加密标识、所述加密算法信息获取密文段;
解密模块,用于利用所述解密算法对所述密文段进行解密,以获取视频数据。
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行根据权利要求1至3中任一项所述的视频加密方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至3任一项所述的视频加密方法。
技术总结