CN107222759B - 媒体文件加解密的方法、***、设备和介质 - Google Patents
媒体文件加解密的方法、***、设备和介质 Download PDFInfo
- Publication number
- CN107222759B CN107222759B CN201710511827.2A CN201710511827A CN107222759B CN 107222759 B CN107222759 B CN 107222759B CN 201710511827 A CN201710511827 A CN 201710511827A CN 107222759 B CN107222759 B CN 107222759B
- Authority
- CN
- China
- Prior art keywords
- media data
- media
- data frame
- encryption
- file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 138
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 195
- 238000012545 processing Methods 0.000 claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 31
- 238000012795 verification Methods 0.000 claims description 46
- 239000012634 fragment Substances 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 14
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
- H04N21/23476—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
- H04N21/44055—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption by partially decrypting, e.g. decrypting a video stream that has been partially encrypted
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明的实施方式提供了一种媒体文件的加密方法,包括:通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理。相应的,本发明的实施方式还提供了一种媒体文件解密方法。通过对数据帧分组从头开始使用密钥加密,并通过流式加密算法进行加密,本发明的方法使得媒体文件的结构不会被破坏,可以正常响应用户的拖动操作,并且,在解密过程中可以从相应的数据帧分组开始进行解密,加快视频的解密速度,提高用户体验感。此外,本发明的实施方式提供了一种媒体文件加解密***。
Description
技术领域
本发明的实施方式涉及数据处理领域,更具体地,本发明的实施方式涉及一种媒体文件加解密的方法、***、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在整个媒体文件传输领域,客户端向服务器请求传输媒体文件时,为了保护源媒体文件的版权,服务器端通常需要对传输的媒体文件进行加密,客户端接收到服务器传输的媒体文件后先解密再进行播放。
目前,已经出现一些针对媒体文件的加密方法,主要包括以下几种:
完全加密算法,完全加密算法中将视频数据当作普通的二进制数据进行加密,不考虑视频的编码格式,如VEA(Video Encryption Algorithm,视频加密算法)和CSC(混沌加密算法)等。
部分加密算法,即选择文件中重要的部分进行加密,常用的加密算法包括分层加密算法和基于帧结构的加密算法等。部分加密算法仅对媒体文件中的重要部分加密。
同编码相关的加密算法,例如有DCT系数加密算法,熵编码过程加密算法等。
发明内容
但是,上述的各种加密算法中,在加密过程中需修改媒体文件格式,或者改变了源媒体文件大小,或者改变了其中的视频数据、音频数据的大小,使得加密后的媒体文件与源媒体文件中的关键帧位置偏移发生变化,如果不进行相应的处理将导致客户端无法进行视频拖动等操作。
因此在现有技术中,为了支持视频拖动等操作,需要对关键帧位置偏移进行重新确定,而对于客户端来说,需要根据服务器端重新确定的关键帧位置对加密媒体文件进行处理,以正确识别媒体文件中的视频数据和音频数据,增加了客户端处理资源的开销,另一方面,由于客户端解密流程更加复杂,降低了客户端播放媒体文件的速度;另外,对于部分视频业务来说,例如流媒体点播业务,由于改变了媒体文件结构,使得内容分发网络(CDN)无法准确定位媒体文件中的各组成部分,从而无法进行媒体文件分发。
为此,非常需要一种改进的媒体文件加密方法,使加密后的媒体文件适用于内容分发网络分发,并降低客户端处理资源的开销,提高客户端播放媒体文件的速度。
在本上下文中,本发明的实施方式期望提供一种媒体文件的加解密方法和***。
在本发明实施方式的第一方面中,提供了一种方法媒体文件的加密方法,所述媒体文件包括媒体数据,所述方法包括:
通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理。
在本发明的一个实施例中,上述方法还包括:如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未加密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行加密处理。
在本发明的另一实施例中,上述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
在本发明的又一实施例中,上述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔。
在本发明的再一实施例中,上述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
在本发明的再一实施例中,上述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
在本发明的再一实施例中,上述媒体文件包括分片格式的MP4媒体文件,所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分,所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
在本发明的再一实施例中,上述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
在本发明的再一实施例中,上述第二元数据包括头信息,所述方法还包括:对所述第二元数据的头信息中至少一个字段进行置位处理,以表示是否对与所述第二元数据对应的媒体数据进行了所述加密处理。
在本发明的再一实施例中,上述对至少一部分所述媒体数据中的数据位依次进行加密处理,包括:对所述媒体数据的特定一个或多个数据位不做所述加密处理。
在本发明的再一实施例中,上述特定一个或多个数据位包括所述媒体数据的前十二个字节。
在本发明的再一实施例中,上述第一元数据包括用户自定义字段,所述方法还包括:在所述用户自定义字段中写入以下任意一项或多项:至少一种加密算法的描述信息,至少一个所述加密算法的版本号,至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息。
在本发明实施方式的第二方面中,提供了一种媒体文件的解密方法,所述媒体文件包括元数据和媒体数据,所述元数据包括所述媒体文件的描述信息,所述方法包括:根据接收到的加密媒体文件的元数据,利用所述加密媒体文件使用的流式加密算法对应的解密算法使用密钥对所述媒体数据中的至少一些数据位依次进行解密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述解密处理。
在本发明的一实施例中,上述方法还包括:如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未解密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行解密处理。
在本发明的另一实施例中,上述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
在本发明的又一实施例中,上述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔。
在本发明的再一实施例中,上述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
在本发明的再一实施例中,上述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
在本发明的再一实施例中,上所述媒体文件包括分片格式的MP4媒体文件,所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分,所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
在本发明的再一实施例中,上述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
在本发明的再一实施例中,上述第二元数据包括头信息,所述头信息包括至少一个字段的置位标识,以表示是否对与所述第二元数据对应的媒体数据进行了加密处理,上述方法还包括:读取所述第二元数据的头信息中至少一个字段的所述置位标识,根据读取的置位标识判断所述第二元数据对应的媒体数据是否为加密的媒体数据。
在本发明的再一实施例中,上述对所述媒体数据中的至少一些数据位依次进行解密处理,包括:对所述媒体数据的特定一个或多个数据位不做所述解密处理。
在本发明的再一实施例中,上述特定一个或多个数据位包括所述媒体数据的前十二个字节。
在本发明的再一实施例中,上述第一元数据包括用户自定义字段,所述自定义字段包括以下任意一项或多项:至少一种加密算法的描述信息,至少一个所述加密算法的版本号,至少一种密钥校验算法的描述信息,至少一个所述密钥检验算法的版本号的描述信息,上述方法还包括:读取所述自定义字段中设置的、加密所述加密媒体文件所使用的至少一种加密算法的描述信息,和/或至少一个所述加密算法的版本号,和/或至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息,根据所述读取的信息,确定用于解密所述加密媒体文件的解密算法和/或密钥校验算法。
在本发明实施方式的第三方面中,提供了一种媒体文件的加密***,所述媒体文件包括媒体数据,所述***包括:流式加密模块,通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理。
在本发明的一实施例中,上述流式加密模块还用于:如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未加密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行加密处理。
在本发明的另一实施例中,上述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
在本发明的又一实施例中,上述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔。
在本发明的再一实施例中,上述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
在本发明的再一实施例中,上述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
在本发明的再一实施例中,上述所述媒体文件包括分片格式的MP4媒体文件,所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分,所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
在本发明的再一实施例中,上述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
在本发明的再一实施例中,上述第二元数据包括头信息,所述***还包括:置位处理模块,对所述第二元数据的头信息中至少一个字段进行置位处理,以表示是否对与所述第二元数据对应的媒体数据进行了所述加密处理。
在本发明的再一实施例中,上述对至少一部分所述媒体数据中的数据位依次进行加密处理,包括:对所述媒体数据的特定一个或多个数据位不做所述加密处理。
在本发明的再一实施例中,上述特定一个或多个数据位包括所述媒体数据的前十二个字节。
在本发明的再一实施例中,上述第一元数据包括用户自定义字段,所述***还包括:自定义模块,在所述用户自定义字段中写入以下任意一项或多项:至少一种加密算法的描述信息,至少一个所述加密算法的版本号,至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息。
在本发明实施方式的第四方面中,提供了一种媒体文件的解密***,所述媒体文件包括元数据和媒体数据,所述元数据包括所述媒体文件的描述信息,所述***包括:流式解密模块,根据接收到的加密媒体文件的元数据,利用所述加密媒体文件使用的流式加密算法对应的解密算法使用密钥对所述媒体数据中的至少一些数据位依次进行解密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述解密处理。
在本发明的一实施例中,上述流式解密模块还用于:如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未解密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行解密处理。
在本发明的另一实施例中,上述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
在本发明的又一实施例中例,上述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔。
在本发明的再一实施例中,上述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
在本发明的再一实施例中,上述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
在本发明的再一实施例中,上述媒体文件包括分片格式的MP4媒体文件,所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分,所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
在本发明的再一实施例中,上述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
在本发明的再一实施例中,上述第二元数据包括头信息,所述头信息包括至少一个字段的置位标识,以表示是否对与所述第二元数据对应的媒体数据进行了加密处理,所述***还包括置位标识读取模块,用于读取所述第二元数据的头信息中至少一个字段的所述置位标识,以及根据读取的置位标识判断所述第二元数据对应的媒体数据是否为加密的媒体数据。
在本发明的再一实施例中,上述对所述媒体数据中的至少一些数据位依次进行解密处理,包括:对所述媒体数据的特定一个或多个数据位不做所述解密处理。
在本发明的再一实施例中,上述特定一个或多个数据位包括所述媒体数据的前十二个字节。
在本发明的再一实施例中,上述第一元数据包括用户自定义字段,所述自定义字段包括以下任意一项或多项:至少一种加密算法的描述信息,至少一个所述加密算法的版本号,至少一种密钥校验算法的描述信息,至少一个所述密钥检验算法的版本号的描述信息,所述***还包括:信息读取模块,用于读取所述自定义字段中设置的、加密所述加密媒体文件所使用的至少一种加密算法的描述信息,和/或至少一个所述加密算法的版本号,和/或至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息,以及根据所述读取的信息,确定用于解密所述加密媒体文件的解密算法和/或密钥校验算法。
在本发明实施方式的第五方面中,提供了一种媒体文件加密设备,包括:一个或多个存储器,存储有可执行指令;以及一个或多个处理器,执行所述可执行指令,以实现上述实施例中任一项上述的媒体文件的加密方法。
在本发明实施方式的第六方面中,提供了一种媒体文件解密设备,包括:一个或多个存储器,存储有可执行指令;以及一个或多个处理器,执行所述可执行指令,以实现上述实施例中任一项上述的媒体文件的解密方法。
在本发明实施方式的第七方面中,提供了一种介质,其上存储有可执行指令,所述指令在被处理器执行时实现上述实施例中任一项上述的媒体文件的加密方法。
在本发明实施方式的第八方面中,提供了一种介质,其上存储有可执行指令,所述指令在被处理器执行时实现上述实施例中任一项上述的媒体文件的解密方法。
根据本发明实施方式的媒体文件的加解密方法及其***,由于在加密过程中不改变源媒体文件的大小和格式,因此加密后的媒体文件中的关键帧位置偏移与源文件相同,从而无需针对加密媒体文件中的关键帧位置偏移进行相应的处理,简化了解密媒体文件的操作处理流程,节约了解密媒体文件所需的处理资源,提高了解密端解密媒体文件的速度。
并且,根据本发明实施方式的媒体文件的加解密方法及其***,由于在加密过程中,对数据帧分组从头开始加密,从而在解密时可以不必从对整个媒体文件从头开始解密,可以根据用户需要,从某一数据帧分组开始进行解密,加快了解密的速度。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的示例性应用场景;
图2示意性地示出了根据本发明实施方式的媒体文件的加密方法的流程图;
图3示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的结构示意图;
图4示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的加密方法的流程图;
图5示意性地示出了根据本发明实施方式的媒体文件的解密方法的流程图;
图6示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的解密方法的流程图;
图7示意性地示出了根据本发明实施方式的媒体文件的加密***的框图;
图8示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的加密***的框图;
图9示意性地示出了根据本发明实施方式的媒体文件的解密***的框图;
图10示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的解密***的框图。
图11示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;以及
图12示意性地示出了根据本发明实施方式的计算设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种媒体文件加解密的方法、***、设备和介质。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:现有的媒体文件加密方法由于改变了媒体文件结构或者媒体文件大小,这使得源媒体文件中的关键帧位置偏移发生变化,为了支持文件拖动等操作,加密端需要重新确定加密后的媒体文件中的关键帧位置偏移,这增加了加密端的加密媒体文件处理操作复杂度,浪费了加密端的处理资源,降低了媒体文件加密速度;相应的,在解密端,需要针对加密的媒体文件中关键帧位置偏移进行相应的处理,以准确识别媒体文件中的关键帧位置偏移,这增加了解密端的解密媒体文件的处理操作复杂度,一方面浪费了解密端的处理资源,另一方面,还会影响解密端解密媒体文件的速度。
并且,现有的媒体文件加密方法对媒体数据按顺序使用密钥依次进行加密,在解密的过程中,如果想要解密中间的某一帧,则需要对所述媒体数据从头开始解密,一方面浪费了解密端的处理资源,另一方面,降低了解密速度,影响用户体验。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,图1示意性地示出了根据本发明实施方式的可以应用本发明的媒体数据加解密方法或***的示例性应用场景。
如图1所示,应用场景可以包括终端设备101、102、103、104,网络105和服务器106。网络104用以在终端设备101、102、103、104和服务器106之间提供通信链路。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103、104通过网络105与服务器106交互,以接收或发送数据等。终端设备101、102、103、104上可以安装有各种媒体文件浏览器、媒体文件播放器等应用。
终端设备101、102、103、104可以是具有显示屏并且支持媒体文件播放的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
根据本发明的实施方式,终端设备101、102、103、104中安装有媒体文件播放客户端,用户通过终端设备中安装的媒体文件播放客户端向媒体文件播放服务器106发送媒体文件获取请求,媒体文件播放服务器106对用户请求的媒体文件进行加密后发送给终端设备,由终端设备中安装的媒体文件播放客户端对接收到的加密媒体文件进行解密后播放。
需要说明的是,本公开实施方式所提供的媒体文件的加密方法一般可以由服务器106执行。相应地,本公开实施例方式所提供的媒体文件的加密***一般可以设置于服务器106中。本公开实施例所提供的媒体文件的加密方法也可以由不同于服务器106且能够与终端设备101、102、103、104和/或服务器106通信的服务器或服务器集群执行。相应地,本公开实施例所提供的媒体文件的加密***也可以设置于不同于服务器106且能够与终端设备101、102、103、104和/或服务器106通信的服务器或服务器集群中。
本公开实施方式所提供的媒体文件的解密方法一般可以由终端设备101、102、103、104中的任意一个或多个执行。相应地,本公开实施例方式所提供的媒体文件的解密***一般可以设置于终端设备101、102、103、104中的一个或多个中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
下面结合图1的应用场景,参考图2来描述根据本发明示例性实施方式的媒体文件的加密方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本发明实施例提供了一种媒体文件的加密方法。
图2示意性地示出了根据本发明实施方式的媒体文件的加密方法的流程图。
如图2所示,该方法可以包括如下操作:
在操作S201,获取媒体文件,所述媒体文件包括媒体数据。其中,获取媒体文件包括根据用户请求获取相应媒体文件。
根据本公开实施例,媒体文件包括元数据和媒体数据,元数据包括对媒体文件的宏观描述信息,媒体数据包括实际要播放的音频数据或者视频数据。
在操作S202,通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理。
其中,流式加密算法是用加密算法和密钥一起产生一个随机码流,再和数据流进行异或操作,产生加密后的数据流,可以保证加密前后的数据长度不会发生变化。流式加密算法按照字节进行加密,不改变源媒体文件的结构和音/视频数据大小。对于视频文件,流式加密算法不改变视频文件各个部分的位置,改变的只是相同位置的数值,这样方便视频的拖动操作。
通过流式加密算法对媒体数据的每一位依次进行加密操作时,每当遇到预设的媒体数据帧分组时,则从密钥的第一位开始,对该媒体数据帧分组进行加密。在对该媒体数据帧分组进行加密时,如果所述密钥的加密比特已经使用完最后一位、且该媒体数据帧分组尚未加密结束,则从密钥的第一位开始继续对该媒体数据帧分组进行加密处理。
例如,媒体数据的数据帧分组A包括30个比特位的一帧数据,数据帧分组B包括50个比特位的两帧数据,数据帧分组B衔接在数据帧分组A之后,密钥包括20个比特位的数据,则从密钥的第1位开始对数据帧分组A的前20位数据依次进行加密计算,当密钥的20位数据对数据帧分组A的前20位数据完成加密之后,继续使用该密钥,从该密钥第1位开始对数据帧分组A的第21位数据至第30位数据依次进行加密计算,当数据帧分组A的30位数据完成加密计算后,剩余的10位密钥不对数据帧分组B进行加密,而是从密钥的第1位开始,先对数据帧分组B的前20位数据进行加密处理。
本领域技术人员应当理解,上述举例中的数据帧分组的数据位的数量以及密钥的数据位的数量仅是为了帮助理解,本公开不限制数据帧分组的大小,也不限制密钥的大小。
每个媒体数据帧分组可以包括单个关键数据帧构成的分组,例如数据帧分组A仅包括一个关键数据帧。每个媒体数据帧分组也可以包括多个数据帧构成的分组,例如数据帧分组B包括两个数据帧,其中,多个数据帧可以都是关键帧,也可是都不是关键帧,还可以一部分是关键帧一部分不是关键帧。
作为一种可选的实施例,媒体数据帧分组可以包括从当前关键帧(I帧)开始,到下一关键帧(I帧)的前一个非关键帧(P帧)结束。也可以包括从P帧开始,其中,该P帧被特殊标记。
关于如何对数据帧进行分组,一个数据帧分组中包括多少帧数据,从哪一帧开始到哪一帧结束,可以根据媒体文件的内容、格式或者用户的请求进行分组。本公开对此不做限定。
根据本公开实施例,可以将媒体文件的媒体数据分为多个媒体数据帧分组。
其中,多个媒体数据帧分组之间可以是连续衔接。例如,媒体数据包括50个数据帧,则第1帧至第10帧可以组成为一个媒体数据帧分组,第11帧至第20帧可以组成为一个数据帧分组。
多个媒体数据帧分组之间也可以有间隔。例如,媒体数据包括50个数据帧,则第1帧至第10帧可以组成为一个媒体数据帧分组,第15帧至第25帧可以组成一个媒体数据帧分组。在本公开实施例中,对于两个媒体数据帧分组之间有间隔的情况下,间隔的多个数据帧(例如,第11帧至第14帧)可以不进行加密,也可以使用密钥的第一位开始对间隔的多个数据帧进行加密,还可以衔接在之前的数据帧分组之后,继续使用密钥的相应数据位开始进行加密。
通过本公开实施例,可以将媒体数据分为多个数据帧分组,每个数据帧分组中包括至少一个数据帧,对每个数据帧分组,从密钥的第一位开始使用流式加密算法依次进行加密处理。使用上述加密方法不会破坏媒体文件的大小和结构,可以正常响应用户的拖动操作,并且,当用户进行拖动操作时,不必从媒体数据的第一位开始使用密钥依次进行解密处理,而是可以通过与拖动位置相应的数据帧分组开始进行解密,加快视频的解密速度,提高用户体验感。
基于本发明提供的媒体文件加密方法,本发明还特别针对分片MP4格式的媒体文件,给出了具体的加密方法。
图3示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件300的结构示意图。
如图3所示,分片格式的MP4文件300包括第一元数据310和至少一个文件片段320,每个文件片段320包括第二元数据321以及媒体数据322。
第一元数据310包括媒体文件的整体描述信息。例如可以是MP4文件中的moov(Movie Metadata box),用来表征此文件时MP4格式的封装,同时也标示了该MP4文件是否存在音频数据或者视频数据等等描述信息。
根据本公开实施例,第一元数据310中还包括有用户自定义字段。例如可以是moov中的udta box。
文件片段320包括媒体数据的至少一部分。例如可以是MP4文件中的fragmentbox。
文件片段320中包括第二元数据321,包括该文件片段的具体描述信息,例如可以是MP4文件中的moof(movie fragment box)。其中第二元数据包括头信息,例如可以是MP4文件中的mfhd(movie fragment header)。
文件片段320中还包括媒体数据322,例如可以是MP4文件中的mdat(movie databox)。
一个文件片段中包含了音频、视频数据,并且包含足够的第二元数据以保证该文件片段中的媒体数据可以单独解码。
根据本公开实施例,每个文件片段320中的媒体数据322包括至少一个媒体数据帧分组。即,一个文件片段即为一个媒体数据帧分组,或者一个文件片段中的媒体数据被分成多个媒体数据帧分组。
下面,结合分片格式的MP4媒体文件参考图4介绍本公开另一实施例的媒体文件加密方法。
图4示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的加密方法的流程图。
如图4所示,该方法包括操作S401~S403。
在操作S401中,对所述第二元数据的头信息中至少一个字段进行置位处理,以表示是否对与所述第二元数据对应的媒体数据进行了所述加密处理。
根据本公开实施例,第二元数据的头信息中有一个Flags字段,代表了当前文件片段的特性,可以使用其中一个标识位来标示当前文件片段的媒体数据是否被加密。例如,可以将该标识位置为1,表示当前文件片段中的媒体数据被加密处理,将该标识位置为0,表示当前文件片段中的媒体数据没有被加密处理。对此,可以便于解密端进行解密,解密端在读到Flags中的标识位被置为1时,则对该文件片段中的媒体数据进行解密处理,否则,不需要对该文件片段中的媒体数据进行解密处理。
在操作S402中,在第一元数据的用户自定义字段中写入一下任意一项或多项:至少一种加密算法的描述信息;至少一个所述加密算法的版本号;至少一种密钥校验算法的描述信息;和/或至少一个所述密钥检验算法的版本号的描述信息。
根据本公开实施例,可以在用户自定义字段中写入几种可能的加密算法的类型和/或版本号,以及密钥校验算法的类型和/或版本号。这样,及时现有的加密算法被破解,在后续更新时,也可以做到无缝升级加密算法。
具体地,加密端需要通知解密端加密媒体文件所使用的流式加密算法和密钥校验算法。解密端在接收到加密媒体文件后,可以首先利用加密端通知的密钥校验算法对密钥进行校验,在对密钥的校验通过之后,解密端再利用加密端所使用的流式加密算法对应的解密算法和校验通过的密钥对媒体文件进行解密。其中,解密端可以在接收到加密媒体文件之后,向加密端请求加密媒体文件所使用的密钥;或者加密端可以与解密端预先协商使用的密钥,如果加密端与解密端协商的密钥包含多个时,则加密端可以在加密媒体文件中指示解密端其使用的密钥标识,加密端可以与解密端协商指示密钥标识的字段,具体实施时,该字段可以为用户自定义字段。
本发明实施例中,加密端可以通过第一元数据通知解密端加密媒体文件所使用的流式加密算法和解密时校验密钥所需使用的密钥校验算法。具体实施时,可以在第一元数据中设置加密媒体文件所使用的流式加密算法的描述信息的字段,或者在第一元数据中设置解密时校验密钥所需使用的密钥校验算法的描述信息的字段,还可以同时设置加密媒体文件所使用的流式加密算法的描述信息的字段和解密时校验密钥所需使用的密钥校验算法的描述信息的字段。如果第一元数据中仅设置流式加密算法的描述信息的字段或者仅设置解密时校验密钥所需使用的密钥校验算法的描述信息的字段时,加密端可以通过其它方式通知解密端使用的流式加密算法或者校验密钥所需的密钥校验算法。加密端和解密端可以预先协商携带流式加密算法和密钥校验算法的字段。
具体实施时,加密端和解密端可以预先协商多种流式加密算法,加密端在对媒体文件加密时,可以随机使用其中任一种,并通过在第一元数据中使用自定义字段指示所使用的流式加密算法的标识,解密端根据该标识确定加密端所使用的流式加密算法,以增强数据加密的安全性。当然,加密端和解密端也可以预先协商多个密钥,用于对不同的媒体文件进行加密,加密端在对媒体文件加密时,可以随机使用其中任一密钥,并通过在第一元数据中使用自定义字段指示所使用密钥对应的密钥校验算法的标识,解密端根据该标识确定加密端所使用密钥对应的密钥校验算法,并利用确定出的密钥校验算法对密钥进行校验。
在操作S403中,通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理。
根据本公开实施例,在对至少一部分的媒体数据中的至少一些数据位依次进行加密处理时,对该媒体数据的特定一个或多个数据位不做所述加密处理。例如,该媒体数据的前十二个字节。
具体地,在对每个文件片段的媒体数据进行加密处理时,前12个字节不做加密处理。在分片格式的MP4媒体文件中,每个文件片段的媒体数据的前四个字节表示mdat的起始偏移,中间四个字节表示mdat的大小,最后四个字节表示mdat的类型。在加密过程中,避开上述12个字节,可以避开关于文件片段的媒体数据的重要字段,可以使解密端准确确定当前box的类型等信息。
根据本公开实施例,在对媒体文件进行加密时,不对媒体文件的第一元数据和第二元数据进行加密处理,仅对媒体数据部分进行加密处理,且,媒体数据的前12个字节不进行加密处理。
具体地,每个文件片段的媒体数据可以是一个数据帧分组,也可以是多个数据帧分组,具体加密方法可以参见上述参考图2描述的方法,在此不再赘述。
本公开实施例的媒体文件加密方法不对元数据进行处理,仅对媒体数据进行加密处理,保留了媒体文件的重要描述信息,保持MP4的格式不变。在加密时使用流式加密算法,可以保持加密前后的文件大小不变。并且在自定义字段中写入了几种可能的加密算法中选择的加密算法的描述信息和/或版本号,以及密钥校验算法的描述信息和/或版本号,可以进行加密算法的无缝升级。
与上述的媒体文件加密方法相对应,本发明实施例还提供了一种媒体文件解密方法。
图5示意性地示出了根据本发明实施方式的媒体文件的解密方法的流程图。
如图5所示,该方法可以包括如下操作:
在操作S501,接收媒体文件,所述媒体文件包括媒体数据。其中,接收媒体文件包括接收来自服务器端的用户请求的加密后的媒体文件。
根据本公开实施例,媒体文件包括元数据和媒体数据,元数据包括对媒体文件的宏观描述信息,媒体数据包括实际要播放的音频数据或者视频数据。
在操作S502,根据接收到的加密媒体文件的元数据,利用所述加密媒体文件使用的流式加密算法对应的解密算法使用密钥对所述媒体数据中的至少一些数据位依次进行解密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述解密处理。
其中,流式加密算法是用加密算法和密钥一起产生一个随机码流,再和数据流进行异或操作,产生加密后的数据流,可以保证加密前后的数据长度不会发生变化。流式加密算法按照字节进行加密,不改变源媒体文件的结构和音/视频数据大小。对于视频文件,流式加密算法不改变视频文件各个部分的位置,改变的只是相同位置的数值,这样方便视频的拖动操作。
利用流式加密算法对应的解密算法使用密钥对媒体数据的每一位依次进行解密操作时,每当遇到预设的媒体数据帧分组时,则从密钥的第一位开始,对该媒体数据帧分组进行解密。在对该媒体数据帧分组进行解密时,如果所述密钥的比特位已经使用完最后一位、且该媒体数据帧分组尚未解密结束,则从密钥的第一位开始继续对该媒体数据帧分组进行解密处理。
例如,媒体数据的数据帧分组A包括30个比特位的一帧数据,数据帧分组B包括50个比特位的两帧数据,数据帧分组B衔接在数据帧分组A之后,密钥包括20个比特位的数据,则从密钥的第1位开始对数据帧分组A的前20位数据依次进行解密计算,当密钥的20位数据对数据帧分组A的前20位数据完成解密之后,继续使用该密钥,从该密钥第1位开始对数据帧分组A的第21位数据至第30位数据依次进行解密计算,当数据帧分组A的30位数据完成解密计算后,剩余的10位密钥不对数据帧分组B进行解密,而是从密钥的第1位开始,先对数据帧分组B的前20位数据进行解密处理。
本领域技术人员应当理解,上述举例中的数据帧分组的数据位的数量以及密钥的数据位的数量仅是为了帮助理解,本公开不限制数据帧分组的大小,也不限制密钥的大小。
根据本公开实施例,媒体数据可以分为多个媒体数据帧分组,多个媒体数据帧分组之间连续衔接或者有间隔。媒体数据帧分组可以包括单个关键数据帧构成的分组,也可以包括多个数据帧构成的分组。作为一种可选的实施例,媒体数据帧分组可以包括从当前关键帧(I帧)开始,到下一关键帧(I帧)的前一个非关键帧(P帧)结束。也可以包括从P帧开始,其中,该P帧被特殊标记。具体可参见上述参照图2对关于数据帧分组的描述,在此不再赘述。
通过本公开实施例,可以将媒体数据分为多个数据帧分组,每个数据帧分组中包括至少一个数据帧,对每个数据帧分组,在加密过程中从密钥的第一位开始使用流式加密算法依次进行加密处理。相应地,在解密过程中,也从密钥的第一位开始使用流式加密算法对每个数据帧分组依次进行解密处理。使用上述加解密方法不会破坏媒体文件的大小和结构,可以正常响应用户的拖动操作,并且,当用户进行拖动操作时,不必从媒体数据的第一位开始使用密钥依次进行解密处理,而是可以通过与拖动位置相应的数据帧分组开始进行解密,加快视频的解密速度,提高用户体验感。
基于本发明提供的媒体文件解密方法,本发明还特别针对分片MP4格式的媒体文件,给出了具体的解密方法。
分片格式的MP4媒体文件的结构示意图可以参见上述参考图3的描述在此不再赘述。
下面,结合分片格式的MP4媒体文件参考图6介绍本公开另一实施例的媒体文件解密方法。
图6示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的解密方法的流程图。
如图6所示,该方法包括操作S601~S603。
在操作S601中,读取所述第二元数据的头信息中至少一个字段的所述置位标识;根据读取的置位标识判断所述第二元数据对应的媒体数据是否为加密的媒体数据。
根据本公开实施例,第二元数据的头信息中有一个Flags字段,代表了当前文件片段的特性,可以使用其中一个标识位来标示当前文件片段的媒体数据是否被加密。例如,可以将该标识位置为1,表示当前文件片段中的媒体数据被加密处理,将该标识位置为0,表示当前文件片段中的媒体数据没有被加密处理。对此,可以便于解密端进行解密,解密端在读到Flags中的标识位被置为1时,则对该文件片段中的媒体数据进行解密处理,否则,不需要对该文件片段中的媒体数据进行解密处理。
在操作S602中,读取所述自定义字段中设置的、加密所述加密媒体文件所使用的至少一种加密算法的描述信息,和/或至少一个所述加密算法的版本号,和/或至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息;根据所述读取的信息,确定用于解密所述加密媒体文件的解密算法和/或密钥校验算法。
根据本公开实施例,在加密过程中可以在用户自定义字段中写入几种可能的加密算法的类型和/或版本号,以及密钥校验算法的类型和/或版本号。具体地,加密端通知解密端加密媒体文件所使用的流式加密算法和密钥校验算法。解密端在接收到加密媒体文件后,可以首先利用加密端通知的密钥校验算法对密钥进行校验,在对密钥的校验通过之后,解密端再利用加密端所使用的流式加密算法对应的解密算法和校验通过的密钥对媒体文件进行解密。其中,解密端可以在接收到加密媒体文件之后,向加密端请求加密媒体文件所使用的密钥;或者加密端可以与解密端预先协商使用的密钥,如果加密端与解密端协商的密钥包含多个时,则加密端可以在加密媒体文件中指示解密端其使用的密钥标识,加密端可以与解密端协商指示密钥标识的字段,具体实施时,该字段可以为用户自定义字段。
本发明实施例中,加密端可以通过第一元数据通知解密端加密媒体文件所使用的流式加密算法和解密时校验密钥所需使用的密钥校验算法。具体实施时,可以在第一元数据中设置加密媒体文件所使用的流式加密算法的描述信息的字段,或者在第一元数据中设置解密时校验密钥所需使用的密钥校验算法的描述信息的字段,还可以同时设置加密媒体文件所使用的流式加密算法的描述信息的字段和解密时校验密钥所需使用的密钥校验算法的描述信息的字段。如果第一元数据中仅设置流式加密算法的描述信息的字段或者仅设置解密时校验密钥所需使用的密钥校验算法的描述信息的字段时,加密端可以通过其它方式通知解密端使用的流式加密算法或者校验密钥所需的密钥校验算法。加密端和解密端可以预先协商携带流式加密算法和密钥校验算法的字段。
具体实施时,加密端和解密端可以预先协商多种流式加密算法,加密端在对媒体文件加密时,可以随机使用其中任一种,并通过在第一元数据中使用自定义字段指示所使用的流式加密算法的标识,解密端根据该标识确定加密端所使用的流式加密算法,以增强数据加密的安全性。当然,加密端和解密端也可以预先协商多个密钥,用于对不同的媒体文件进行加密,加密端在对媒体文件加密时,可以随机使用其中任一密钥,并通过在第一元数据中使用自定义字段指示所使用密钥对应的密钥校验算法的标识,解密端根据该标识确定加密端所使用密钥对应的密钥校验算法,并利用确定出的密钥校验算法对密钥进行校验。
在操作S603中,利用加密媒体文件使用的流式加密算法对应的解密算法使用密钥对媒体数据的至少一些数据位依次进行解密处理。
根据本公开实施例,在对至少一部分的媒体数据中的至少一些数据位依次进行解密处理时,对该媒体数据的特定一个或多个数据位不做所述解密处理。例如,该媒体数据的前十二个字节。
具体地,在对每个文件片段的媒体数据的加密过程中,前12个字节不做加密处理。在分片格式的MP4媒体文件中,每个文件片段的媒体数据的前四个字节表示mdat的起始偏移,中间四个字节表示mdat的大小,最后四个字节表示mdat的类型。在加密过程中,避开上述12个字节,可以避开关于文件片段的媒体数据的重要字段,可以使解密端准确确定当前box的类型等信息。因此,相应地,在解密过程中,每个文件片段的媒体数据的前12个字节不做解密处理。
根据本公开实施例,在对媒体文件进行解密时,不对媒体文件的第一元数据和第二元数据进行解密,仅对媒体数据部分进行解密处理,且,媒体数据的前12个字节不进行解密。
具体地,每个文件片段的媒体数据可以是一个数据帧分组,也可以是多个数据帧分组,具体解密方法可以参见上述参考图5描述的方法,在此不再赘述。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图7对本发明示例性实施方式的、用于实现媒体文件的加密***进行详细阐述。
本发明实施例提供了一种媒体文件的加密***。
图7示意性地示出了根据本发明实施方式的媒体文件的加密***700的框图。
如图7所示,媒体文件的加密***700包括获取模块710和流式加密模块720。
具体地,获取模块710,获取媒体文件,所述媒体文件包括媒体数据。其中,获取媒体文件包括根据用户请求获取相应媒体文件。根据本公开实施例,获取模块710例如可以执行上文参考图2描述的操作S201,在此不再赘述。
流式加密模块720,通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理。
根据本公开实施例,流式加密模块720还用于如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未加密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行加密处理。
根据本公开实施例,流式加密模块720例如可以执行上文参考图2描述的操作S202,在此不再赘述。
通过本公开实施例,可以将媒体数据分为多个数据帧分组,每个数据帧分组中包括至少一个数据帧,对每个数据帧分组,从密钥的第一位开始使用流式加密算法依次进行加密处理。使用上述加密***不会破坏媒体文件的大小和结构,可以正常响应用户的拖动操作,并且,当用户进行拖动操作时,不必从媒体数据的第一位开始使用密钥依次进行解密处理,而是可以通过与拖动位置相应的数据帧分组开始进行解密,加快视频的解密速度,提高用户体验感。
虽然不同格式的媒体文件结构不同,但其对媒体文件进行加密的原理是相同的。为了便于描述,本发明实施例中以分片MP4格式的媒体文件为例对本发明实施例提供的媒体文件加密***的具体***结构继续拧说明。应当理解,本发明实施例中以分片MP4文件为例对媒体文件加密***的实施流程进行说明只是为了更好的理解本发明,其不构成对本发明的限定。
图8示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的加密***800的框图。
如图8所示,分片格式的MP4媒体文件的加密***800包括置位处理模块810、自定义模块820以及流式加密模块830。
置位处理模块810,对所述第二元数据的头信息中至少一个字段进行置位处理,以表示是否对与所述第二元数据对应的媒体数据进行了所述加密处理。置位处理模块810例如可以执行上文参考图4描述的操作S401,在此不再赘述。
自定义模块820,在第一元数据的用户自定义字段中写入一下任意一项或多项:至少一种加密算法的描述信息;至少一个所述加密算法的版本号;至少一种密钥校验算法的描述信息;和/或至少一个所述密钥检验算法的版本号的描述信息。自定义模块820例如可以执行上文参考图4描述的操作S402,在此不再赘述。
流式加密模块830,通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理。流式加密模块830例如可以执行上文参考图4描述的操作S403,在此不再赘述。
本公开实施例的媒体文件加密***不对元数据进行处理,仅对媒体数据进行加密处理,保留了媒体文件的重要描述信息,保持MP4的格式不变。在加密时使用流式加密算法,可以保持加密前后的文件大小不变。并且在自定义字段中写入了几种可能的加密算法中选择的加密算法的描述信息和/或版本号,以及密钥校验算法的描述信息和/或版本号,可以进行加密算法的无缝升级。
与上述的媒体文件加密***相对应,本发明实施例还提供了一种媒体文件解密***。
图9示意性地示出了根据本发明实施方式的媒体文件的解密***900的框图。
如图9所示,媒体文件的解密***900包括接收模块910和流式解密模块920。
接收模块910,接收媒体文件,所述媒体文件包括媒体数据。其中,接收媒体文件包括接收来自服务器端的用户请求的加密后的媒体文件。根据本公开实施例,接收模块910例如可以执行上文参考图5描述的操作S501,在此不再赘述。
流式解密模块920,根据接收到的加密媒体文件的元数据,利用所述加密媒体文件使用的流式加密算法对应的解密算法使用密钥对所述媒体数据中的至少一些数据位依次进行解密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述解密处理。
根据本公开实施例,流式解密模块920还用于如果所述密钥的比特位已经使用完最后一位、且该媒体数据帧分组尚未解密结束,则从密钥的第一位开始继续对该媒体数据帧分组进行解密处理。
根据本公开实施例,流式解密模块920例如可以执行上文参考图5描述的操作S502,在此不再赘述。
通过本公开实施例,可以将媒体数据分为多个数据帧分组,每个数据帧分组中包括至少一个数据帧,对每个数据帧分组,在加密过程中从密钥的第一位开始使用流式加密算法依次进行加密处理。相应地,在解密过程中,也从密钥的第一位开始使用流式加密算法对每个数据帧分组依次进行解密处理。使用上述加解密***不会破坏媒体文件的大小和结构,可以正常响应用户的拖动操作,并且,当用户进行拖动操作时,不必从媒体数据的第一位开始使用密钥依次进行解密处理,而是可以通过与拖动位置相应的数据帧分组开始进行解密,加快视频的解密速度,提高用户体验感。
虽然不同格式的媒体文件结构不同,但其对媒体文件进行加密的原理是相同的。为了便于描述,本发明实施例中以分片MP4格式的媒体文件为例对本发明实施例提供的媒体文件解密方法的具体实施过程进行说明。应当理解,本发明实施例中以分片MP4文件为例对媒体文件解密方法的实施流程进行说明只是为了更好的理解本发明,其不构成对本发明的限定。
分片格式的MP4媒体文件的结构示意图可以参见上述参考图3的描述在此不再赘述。
下面,结合分片格式的MP4媒体文件参考图10介绍本公开另一实施例的媒体文件解密***。
图10示意性地示出了根据本发明实施方式的分片格式的MP4媒体文件的解密***1000的框图。
如图10所示,分片格式的MP4媒体文件的解密***1000包括置位标识读取模块1010、信息读取模块1020以及流式解密模块1030。
置位标识读取模块1010,读取所述第二元数据的头信息中至少一个字段的所述置位标识,以及根据读取的置位标识判断所述第二元数据对应的媒体数据是否为加密的媒体数据。根据本公开实施例,置位标识读取模块1010例如可以执行上文参考图6描述的操作S601,在此不再赘述。
信息读取模块1020,读取所述自定义字段中设置的、加密所述加密媒体文件所使用的至少一种加密算法的描述信息,和/或至少一个所述加密算法的版本号,和/或至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息,以及根据所述读取的信息,确定用于解密所述加密媒体文件的解密算法和/或密钥校验算法。根据本公开实施例,信息读取模块1020例如可以执行上文参考图6描述的操作S602,在此不再赘述。
流式解密模块1030,利用加密媒体文件使用的流式加密算法对应的解密算法使用密钥对媒体数据的至少一些数据位依次进行解密处理。根据本公开实施例,流式解密模块1030例如可以执行上文参考图6描述的操作S603,在此不再赘述。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图11对本发明示例性实施方式的、用于实现媒体文件的加密方法的介质进行详细阐述。
本发明实施例提供了一种介质,存储有可执行指令,上述指令在被处理单元执行时用于实现上述方法实施例中任一项上述的媒体文件的加密方法和解密方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于图表的数据处理方法中的步骤,例如,所述终端设备可以执行如图5~6中所示的步骤。当所述程序产品在服务器上运行时,所述程序代码用于使所述服务器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于图表的数据处理方法中的步骤,例如,所述服务器可以执行如图2~4中所示的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图11所示,描述了根据本发明的实施方式的用于图表的数据处理的程序产品40,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图12对本发明示例性实施方式的、用于实现媒体文件的加密设备和解密设备。
本发明实施例还提供了一种媒体文件的加密设备和一种媒体文件的解密设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本发明的媒体文件的加密设备和解密设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的信息呈现方法中的步骤。例如,所述处理单元可以执行如图2~4中所示的步骤以实现对媒体文件的加密。又例如,所述处理单元还可以执行如图5~6中所示的步骤以实现对媒体文件的解密。
下面参照图12来描述根据本发明的这种实施方式的媒体文件的加密设备或者解密设备的计算设备50。如图12所示的计算设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算设备50以通用计算设备的形式表现。计算设备50的组件可以包括但不限于:上述至少一个处理单元501、上述至少一个存储单元502、连接不同***组件(包括存储单元502和处理单元501)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元502可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)5021和/或高速缓存存储器5022,还可以进一步包括只读存储器(ROM)5023。
存储单元502还可以包括具有一组(至少一个)程序模块5024的程序/实用工具5025,这样的程序模块5024包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备50也可以与一个或多个外部设备504(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备50交互的设备通信,和/或与使得计算设备50能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,计算设备50还可以通过网络适配器506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器506通过总线503与计算设备50的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了媒体文件的加密***或者媒体文件的解密***的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (44)
1.一种媒体文件的加密方法,所述媒体文件包括媒体数据,所述方法包括:
通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理;以及
如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未加密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行加密处理,以及如果对所述媒体数据帧分组加密完成而所述密钥的加密比特未使用完,则从所述密钥的第一位开始对所述媒体数据帧分组后续的另一媒体数据帧分组进行所述加密处理;
其中,所述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔;对于两个媒体数据帧分组之间有间隔的情况下,对处于两个媒体数据帧分组之间的间隔中的数据帧不加密。
2.根据权利要求1所述的方法,所述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
3.根据权利要求1所述的方法,所述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
4.根据权利要求1所述的方法,所述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
5.根据权利要求1所述的方法,其中:
所述媒体文件包括分片格式的MP4媒体文件,
所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分;
所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,
其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
6.根据权利要求5所述的方法,其中,所述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
7.根据权利要求5所述的方法,其中,所述第二元数据包括头信息,所述方法还包括:
对所述第二元数据的头信息中至少一个字段进行置位处理,以表示是否对与所述第二元数据对应的媒体数据进行了所述加密处理。
8.根据权利要求5所述的方法,其中,所述对至少一些所述媒体数据中的数据位依次进行加密处理,包括:
对所述媒体数据的特定一个或多个数据位不做所述加密处理。
9.根据权利要求8所述的方法,其中,所述特定一个或多个数据位包括所述媒体数据的前十二个字节。
10.根据权利要求5所述的方法,其中,所述第一元数据包括用户自定义字段,所述方法还包括:
在所述用户自定义字段中写入以下任意一项或多项:
至少一种加密算法的描述信息;
至少一个所述加密算法的版本号;
至少一种密钥校验算法的描述信息;和/或
至少一个所述密钥检验算法的版本号的描述信息。
11.一种媒体文件的解密方法,所述媒体文件包括元数据和媒体数据,所述元数据包括所述媒体文件的描述信息,所述方法包括:
根据接收到的加密媒体文件的元数据,利用所述加密媒体文件使用的流式加密算法对应的解密算法使用密钥对所述媒体数据中的至少一些数据位依次进行解密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述解密处理;以及
如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未解密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行解密处理,以及如果对所述媒体数据帧分组解密完成而所述密钥的加密比特未使用完,则从所述密钥的第一位开始对所述媒体数据帧分组后续的另一媒体数据帧分组进行所述解密处理;
其中,所述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔;对于两个媒体数据帧分组之间有间隔的情况下,对处于两个媒体数据帧分组之间的间隔中的数据帧不进行解密处理。
12.根据权利要求11所述的方法,所述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
13.根据权利要求11所述的方法,所述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
14.根据权利要求11所述的方法,所述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
15.根据权利要求11所述的方法,其中:
所述媒体文件包括分片格式的MP4媒体文件,
所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分;
所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,
其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
16.根据权利要求15所述的方法,其中,所述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
17.根据权利要求15所述的方法,其中,所述第二元数据包括头信息,所述头信息包括至少一个字段的置位标识,以表示是否对与所述第二元数据对应的媒体数据进行了加密处理,
所述方法还包括:
读取所述第二元数据的头信息中至少一个字段的所述置位标识;
根据读取的置位标识判断所述第二元数据对应的媒体数据是否为加密的媒体数据。
18.根据权利要求15所述的方法,其中,所述对所述媒体数据中的至少一些数据位依次进行解密处理,包括:
对所述媒体数据的特定一个或多个数据位不做所述解密处理。
19.根据权利要求18所述的方法,其中,所述特定一个或多个数据位包括所述媒体数据的前十二个字节。
20.根据权利要求15所述的方法,其中,所述第一元数据包括用户自定义字段,所述自定义字段包括以下任意一项或多项:至少一种加密算法的描述信息,至少一个所述加密算法的版本号,至少一种密钥校验算法的描述信息,至少一个所述密钥检验算法的版本号的描述信息,
所述方法还包括:
读取所述自定义字段中设置的、加密所述加密媒体文件所使用的至少一种加密算法的描述信息,和/或至少一个所述加密算法的版本号,和/或至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息;
根据所述读取的信息,确定用于解密所述加密媒体文件的解密算法和/或密钥校验算法。
21. 一种媒体文件的加密***,所述媒体文件包括媒体数据,所述***包括:
流式加密模块,通过流式加密算法使用密钥对所述媒体数据中的至少一些数据位依次进行加密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述加密处理;以及
如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未加密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行加密处理,以及如果对所述媒体数据帧分组加密完成而所述密钥的加密比特未使用完,则从所述密钥的第一位开始对所述媒体数据帧分组后续的另一媒体数据帧分组进行所述加密处理;
其中,所述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔;对于两个媒体数据帧分组之间有间隔的情况下,对处于两个媒体数据帧分组之间的间隔中的数据帧不加密。
22.根据权利要求21所述的***,所述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
23.根据权利要求21所述的***,所述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
24.根据权利要求21所述的***,所述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
25.根据权利要求21所述的***,其中:
所述媒体文件包括分片格式的MP4媒体文件,
所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分;
所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,
其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
26.根据权利要求25所述的***,其中,所述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
27.根据权利要求25所述的***,其中,所述第二元数据包括头信息,所述***还包括:
置位处理模块,对所述第二元数据的头信息中至少一个字段进行置位处理,以表示是否对与所述第二元数据对应的媒体数据进行了所述加密处理。
28.根据权利要求25所述的***,其中,所述对至少一些所述媒体数据中的数据位依次进行加密处理,包括:
对所述媒体数据的特定一个或多个数据位不做所述加密处理。
29.根据权利要求28所述的***,其中,所述特定一个或多个数据位包括所述媒体数据的前十二个字节。
30.根据权利要求25所述的***,其中,所述第一元数据包括用户自定义字段,所述***还包括:
自定义模块,在所述用户自定义字段中写入以下任意一项或多项:
至少一种加密算法的描述信息;
至少一个所述加密算法的版本号;
至少一种密钥校验算法的描述信息;和/或
至少一个所述密钥检验算法的版本号的描述信息。
31.一种媒体文件的解密***,所述媒体文件包括元数据和媒体数据,所述元数据包括所述媒体文件的描述信息,所述***包括:
流式解密模块,根据接收到的加密媒体文件的元数据,利用所述加密媒体文件使用的流式加密算法对应的解密算法使用密钥对所述媒体数据中的至少一些数据位依次进行解密处理,包括每当遇到预设的媒体数据帧分组时,从所述密钥的第一位开始对所述媒体数据帧分组的比特位依次进行所述解密处理;以及
如果所述密钥的加密比特已经使用完最后一位、且所述媒体数据帧分组尚未解密结束,则从所述密钥的第一位开始继续对所述媒体数据帧分组进行解密处理,以及如果对所述媒体数据帧分组解密完成而所述密钥的加密比特未使用完,则从所述密钥的第一位开始对所述媒体数据帧分组后续的另一媒体数据帧分组进行所述解密处理;
其中,所述媒体数据帧分组为多个,多个媒体数据帧分组之间连续衔接或者有间隔;对于两个媒体数据帧分组之间有间隔的情况下,对处于两个媒体数据帧分组之间的间隔中的数据帧不进行解密处理。
32.根据权利要求31所述的***,所述媒体数据帧分组包括单个关键数据帧构成的分组或者多个数据帧构成的分组。
33.根据权利要求31所述的***,所述媒体数据帧分组包括从当前I帧开始,到下一I帧的前一个P帧结束。
34.根据权利要求31所述的***,所述媒体数据帧分组从P帧开始,且所述P帧被特殊标记。
35.根据权利要求31所述的***,其中:
所述媒体文件包括分片格式的MP4媒体文件,
所述分片格式的MP4媒体文件包括多个文件片段,每个文件片段包括所述媒体数据的至少一部分;
所述媒体文件还包括至少一个第一元数据和分别与所述多个文件片段相对应的多个第二元数据,
其中,所述第一元数据包括所述媒体文件的整体描述信息,每个所述第二元数据包括相应的文件片段的具体描述信息。
36.根据权利要求35所述的***,其中,所述每个文件片段中的媒体数据包括至少一个所述媒体数据帧分组。
37.根据权利要求35所述的***,其中,所述第二元数据包括头信息,所述头信息包括至少一个字段的置位标识,以表示是否对与所述第二元数据对应的媒体数据进行了加密处理,
所述***还包括值位标识读取模块,其中,所述置位标识读取模块用于读取所述第二元数据的头信息中至少一个字段的所述置位标识,以及根据读取的置位标识判断所述第二元数据对应的媒体数据是否为加密的媒体数据。
38.根据权利要求35所述的***,其中,所述对所述媒体数据中的至少一些数据位依次进行解密处理,包括:
对所述媒体数据的特定一个或多个数据位不做所述解密处理。
39.根据权利要求38所述的***,其中,所述特定一个或多个数据位包括所述媒体数据的前十二个字节。
40.根据权利要求35所述的***,其中,所述第一元数据包括用户自定义字段,所述自定义字段包括以下任意一项或多项:至少一种加密算法的描述信息,至少一个所述加密算法的版本号,至少一种密钥校验算法的描述信息,至少一个所述密钥检验算法的版本号的描述信息,
所述***还包括信息读取模块,其中,所述信息读取模块用于读取所述自定义字段中设置的、加密所述加密媒体文件所使用的至少一种加密算法的描述信息,和/或至少一个所述加密算法的版本号,和/或至少一种密钥校验算法的描述信息,和/或至少一个所述密钥检验算法的版本号的描述信息,以及根据所述读取的信息,确定用于解密所述加密媒体文件的解密算法和/或密钥校验算法。
41.一种媒体文件加密设备,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求1~10中任一项所述的方法。
42.一种媒体文件解密设备,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求11~20中任一项所述的方法。
43.一种介质,其上存储有可执行指令,所述指令在被处理器执行时实现根据权利要求1~10中任一项所述的方法。
44.一种介质,其上存储有可执行指令,所述指令在被处理器执行时实现根据权利要求11~20中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710511827.2A CN107222759B (zh) | 2017-06-28 | 2017-06-28 | 媒体文件加解密的方法、***、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710511827.2A CN107222759B (zh) | 2017-06-28 | 2017-06-28 | 媒体文件加解密的方法、***、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107222759A CN107222759A (zh) | 2017-09-29 |
CN107222759B true CN107222759B (zh) | 2021-02-02 |
Family
ID=59950875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710511827.2A Active CN107222759B (zh) | 2017-06-28 | 2017-06-28 | 媒体文件加解密的方法、***、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107222759B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108550043A (zh) * | 2018-04-16 | 2018-09-18 | 北京佳艺徕经贸有限责任公司 | 商品标识的防伪方法、装置及商品真伪的验证方法、装置 |
CN109561323B (zh) * | 2019-01-02 | 2021-11-12 | 武汉珈铭汉象教育科技有限公司 | Mp4文件加密、解密方法及装置 |
CN110493251B (zh) * | 2019-08-30 | 2022-02-15 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
CN110611830A (zh) * | 2019-09-29 | 2019-12-24 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、装置、设备及介质 |
CN110929302B (zh) * | 2019-10-31 | 2022-08-26 | 东南大学 | 一种数据安全加密存储方法及存储装置 |
CN111093097A (zh) * | 2019-12-20 | 2020-05-01 | 北京云享智胜科技有限公司 | 流媒体数据加密、解密方法、装置、电子设备及存储介质 |
CN116094714B (zh) * | 2023-02-24 | 2023-06-20 | 浙江大华技术股份有限公司 | 一种码流加密、解密方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991403A (en) * | 1996-12-23 | 1999-11-23 | Intel Corporation | Recoverable cryptographic transformation on YUV data suitable for compressions |
CN1549491A (zh) * | 2003-05-06 | 2004-11-24 | �Ҵ���˾ | 数据流的加密、解密方法和装置 |
CN1997146A (zh) * | 2006-12-20 | 2007-07-11 | 四川长虹电器股份有限公司 | 一种mp4格式多媒体数据内容加密方法 |
CN105162588A (zh) * | 2015-09-14 | 2015-12-16 | 网易(杭州)网络有限公司 | 一种媒体文件加解密方法和装置 |
CN105791243A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 多媒体文件加密传输、解密播放方法和装置 |
-
2017
- 2017-06-28 CN CN201710511827.2A patent/CN107222759B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991403A (en) * | 1996-12-23 | 1999-11-23 | Intel Corporation | Recoverable cryptographic transformation on YUV data suitable for compressions |
CN1549491A (zh) * | 2003-05-06 | 2004-11-24 | �Ҵ���˾ | 数据流的加密、解密方法和装置 |
CN1997146A (zh) * | 2006-12-20 | 2007-07-11 | 四川长虹电器股份有限公司 | 一种mp4格式多媒体数据内容加密方法 |
CN105791243A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 多媒体文件加密传输、解密播放方法和装置 |
CN105162588A (zh) * | 2015-09-14 | 2015-12-16 | 网易(杭州)网络有限公司 | 一种媒体文件加解密方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107222759A (zh) | 2017-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107222759B (zh) | 媒体文件加解密的方法、***、设备和介质 | |
US10902096B2 (en) | Protecting media items using a media security controller | |
JP4674608B2 (ja) | ノード装置及び情報処理方法並びにノード装置用プログラム | |
EP2352251A1 (en) | Content decoding apparatus, content decoding method and integrated circuit | |
CN110401677B (zh) | 数字版权密钥的获取方法、装置、存储介质及电子设备 | |
US12010372B2 (en) | Content recording and group encryption | |
CN105162588A (zh) | 一种媒体文件加解密方法和装置 | |
JP2012248135A (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
CN110620950B (zh) | 一种音视频文件的存储方法、装置及设备 | |
EP3276912B1 (en) | Segmented encryption for content delivery | |
CN111611606A (zh) | 文件加密、解密方法和装置 | |
CN116132041A (zh) | 密钥处理方法、装置、存储介质及电子设备 | |
CN113259718B (zh) | 视频流的加密方法、装置、通信设备及存储介质 | |
CN108985109A (zh) | 一种数据存储方法及装置 | |
KR101701625B1 (ko) | 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템 | |
CN113014956B (zh) | 视频播放方法以及装置 | |
US11372984B2 (en) | Key-compressible encryption | |
CN111130788B (zh) | 数据处理方法和***、数据读取方法和iSCSI服务器 | |
KR20190136531A (ko) | 동영상의 보안 서비스 방법 및 시스템 | |
CN108958771A (zh) | 应用程序的更新方法、装置、服务器及存储介质 | |
CN113507363B (zh) | 数据处理的方法、装置、电子设备和存储介质 | |
CN113761551A (zh) | 密钥的生成方法、加密方法、解密方法和装置 | |
KR20200074572A (ko) | 네트워크 인터페이스 장치 및 그 제어 방법 | |
KR20120043528A (ko) | 컨텐츠 drm 적용 방법 및 장치 | |
CN107959896A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210928 Address after: 310052 Room 408, building 3, No. 399, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Netease Zhiqi Technology Co.,Ltd. Address before: 310052 Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province, 4, 7 stories Patentee before: NETEASE (HANGZHOU) NETWORK Co.,Ltd. |