一种音频文件的加密解密方法与流程

文档序号:12825465阅读:1258来源:国知局
一种音频文件的加密解密方法与流程

本发明涉及网络通信及多媒体文件传输技术,尤其涉及一种音频文件的加密解密方法。



背景技术:

近年来随着互联网技术的发展,人们获得多媒体文件,如cd、vcd/dvd格式的数字音视频片等的途径和方式也发生了根本性的变化。从以往购买以cd、vcd、dvd为载体的实物商品,转变为通过各种电子智能终端,如pc机、平板电脑、移动智能终端(即手机)从互联网在线播放或下载后进行播放的方式获取。

由于发布在互联网上的多媒体文件,多以原始文件的形式存在,也有将原始文件进行简单分割后以几个文件片段的形式存储在网络的;稍复杂点的,对分发的多媒体文件或多媒体流文件,采用基于超文本传输协议(hypertexttransferprotocol,http)进行文件传输,容易被嗅探得到资源下载路径得到原始多媒体文件。因而,网络用户能够轻而易举地直接通过在线播放或下载的方式就能免费获得和使用这样的原始多媒体文件,这对包含在该多媒体文件中的作品享有著作权的权利人而言,是一种权益侵害,同时,这种行为还涉嫌违反著作权法。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种音频文件的加密解密方法,以利于对采用本发明的加密方法加密的音频文件进行加密传输,从而实现对多媒体资源的版权保护。

为达到上述目的,本发明的技术方案是这样实现的:

一种音频文件的加密方法,该方法包括如下步骤:

a、准备好加密算法alg密钥key和加密解密的初始值iv;

b、选择一种音频编码方式,用于对原始音频数据进行编码;

c、初始化ogg输出流,给当前音频流分配一个二进制流序号serial_no,页序数page_seq_no置零;

d、取一小段固定长度的音频数据wave_data_1,使用给定的音频编码方式对音频数据进行编码,得到编码后的二进制数据块data_block_1;

e、将所述二进制数据块data_block_1写入ogg流,得到若干个ogg页;

f、对新产生的ogg页,使用步骤a当中准备好的加密参数对该页的负载进行加密计算。

其中,所述步骤f之后进一步包括:

g、重复步骤d~步骤f,直至音频流结束。

步骤b所述的音频编码方式,包括flac、mp3、aac、opus、vorbis中的任意一种。

步骤f具体包括:

f1、采用加密初始值vi'=vixorserial_noxorpage_seq_no,页头当中包含的crc校验码使用加密后的内容作为负载重新计算;

f2、使用加密后的二进制数据替换该页原有的负载,把新产生的ogg页写入输出流。

一种音频文件的解密方法,该方法包括如下步骤:

a、准备好加密算法alg密钥key和加密解密的初始值iv;

b、用户或上层调用程序提供音频编码方式;

c、初始化ogg输入流,获得音频输入流的二进制流序号serial_no;

d、读入一个ogg页,获取当前页的crc校验码、页序数page_seq_no和负载;

e、对当前页的负载进行crc校验,检测其是否完整;

f、计算实际使用的解密初始值vi'=vixorserial_noxorpage_seq_no;

g、使用加密算法alg、密钥key和初始值vi'对当前ogg页的负载进行解密,获得解密后的数据data_block_1;

h、使用步骤b中提供的音频解码方式对data_block_1进行解码,获得一小段音频数据wave_data_1。

其中,步骤h之后进一步包括:

i、重复步骤d~步骤h,直到ogg输入流结束。

步骤b所述的音频编码方式,包括flac、mp3、aac、opus、vorbis中的任意一种。

步骤e所述当前页的负载进行crc校验,检测其是否完整,具体包括:

如果完整,则返回解密、解码后的原始音频;如果不完整,则提示上层应用,由上层应用进行静音、停止解码或提示用户有数据损坏等操作之一。

本发明所提供的音频文件的加密解密方法,具有以下优点:

相较于现有技术(如flash文件,即flv格式文件的传输)的缺点,诸如传输的内容种类有限、传输方向单一(不允许让用户主动发送内容、不能在用户之间传输内容)、实时性差、传输安全性差、内容容易被下载保存(不利于版权保护)等缺陷或不足,本发明提供的基于互联网的加密音频流的文件传输系统及其方法的方案,通过对数字多媒体资源(包括音频流)进行加密和解密的方式,既可以让艺术创作者安全、放心地以多媒体流的方式分发数字媒体作品,也可以让艺术创作者们相互之间高效、即时性地远程交流、协作。

附图说明

图1为本发明实施例基于加密音频流的文件传输系统的结构示意图;

图2为本发明图1所示基于加密音频流的文件传输过程示意图;

图3a、图3b分别为本发明实施例音频(流)文件的加密、解密过程示意图。

具体实施方式

下面结合附图及本发明的实施例对本发明的音频流文件的加密解密方法作进一步详细的说明。

图1为本发明实施例基于加密音频流的文件传输系统的结构示意图。

如图1所示,该实施例的文件传输系统主要包括:浏览器(browser)f、第三方网站(3rdpartywebsite)a、登录网站(loginwebsite)b、api服务器(apiserver)c、ugxp服务器(ugxpserver)d、资源服务器(即res服务器)e。其中:

所述浏览器f,用于展现用户所浏览的网站的内容,以及提供用户与网站之间的操作交互。

第三方网站a,用于提供用户所浏览的内容。

api服务器c,用于给第三方网站鉴别与认证用户的身份、核实用户权限。

ugxp服务器d,用于对多媒体资源进行实时动态加密,用于对多媒体资源进行重新编码,还用于对多媒体资源进行实时预处理、再处理。所述再处理,包括添加水印、音量调整等。

res服务器e,用于存放与提供预先创作好的需要进行版权保护的多媒体资源的明文版本。所述明文,就是说所述需要进行版权保护的多媒体资源是未加密的。

还包括登录网站b,用于给用户提供一个统一的账户登录、核实身份、鉴权的图形化界面。

图2为本发明图1所示基于加密音频流的文件传输过程示意图。

如图2所示,该文件传输过程包括如下步骤:

步骤1:利用浏览器f向第三方网站a的服务器发起网页请求;

步骤2:所述第三方网站a的服务器返回初始页;

步骤3:浏览器f返回请求资源;

步骤4:若尚未登录,则需先向api服务器c发送登录请求;若已登录,跳至第三方服务器b;

步骤5:api服务器c返回登录请求的请求令牌(request_token);

步骤6:在第三方网站a的服务器中生成跳转浏览器地址,其带有请求令牌(request_token)和请求统一资源定位符(request_url);

步骤7:浏览器f跳转到登录网站b进行登录;

步骤8:若登录成功,引导浏览器f跳转到请求统一资源定位符(request_url),并带有令牌(token);若登录失败,则结束。

步骤9:浏览器f使用所述request_url+token访问第三方网站a;

步骤10:第三方网站a访问api服务器c,验证所述令牌(token)的有效性;

步骤11:若令牌(token)有效,返回用户登录信息;所述信息包括访问令牌(access_token)和刷新令牌(refresh_token);若令牌(token)无效,则返回错误提示内容。

步骤12:第三方网站a返回用户账户登录信息给浏览器f;

步骤13:通过浏览器f向ugxp服务器d发送请求;

步骤14:所述ugxp服务器d返回“401未授权(unauthorize)”信息,并带上www-authenticate字段;

步骤15:通过浏览器f向ugxp服务器d发送请求,带上authorization作为认证信息以鉴权;具体包括:

步骤151:ugxp服务器d向api服务器c发送请求,鉴别访问令牌(access_token)有效性;

步骤152:api服务器c向ugxp服务器d返回access_token有效性,若有效,则带上用户登录信息。

步骤16:若鉴权成功,返回101状态码,建立websocket连接;

步骤17:浏览器f向ugxp服务器d发送describe命令;

步骤18:ugxp服务器d向res服务器e发送请求,获取目标资源元信息;

步骤19:若该资源存在,返回资源元信息;若不存在,则返回错误提示;

步骤20:所述ugxp服务器d向浏览器f返回元信息或错误码;

步骤21:所述浏览器f向ugxp服务器d发送安装(setup)命令;

步骤22:ugxp服务器d作必要的准备,并返回(200ok);

步骤23:浏览器f向ugxp服务器d发出播放(play)命令;

步骤24:ugxp服务器d向res服务器e请求媒体资源;

步骤25:res服务器e向ugxp服务器d返回请求媒体资源;

步骤26:ugxp服务器d对获取的媒体资源重新编码,并采用ogg容器进行封装,对于ogg封装的每个分页,进行aes加密,所采用的秘钥可从用户登录信息加以计算得到,并向浏览器f发送加密后的媒体资源;

步骤27:浏览器f从用户登录信息中获得所述的秘钥,通过浏览器f进行aes解密,然后利用浏览器f对已解密的媒体资源进行播放。

至此,采用上述技术方案,实现了利用动态网页技术,有鉴权、有限制地提供媒体资源(多媒体内容),在传输时能够动态地对所传输的内容进行加密保护,实现了阻断传统开发者读取在线播放中的源文件信息及路径从而获得媒体资源的途径,从而保护了媒体资源的版权。同时,由于采用音频帧时间间隔小的opus音频编码和ogg封装格式,实现了超低时延(小于5ms)的网络音频传输目的。此外,利用服务器到浏览器的双向传输技术,在内容为即时生成的前提下(交互式创作),仍可即时回传所生成的内容,可以在不增加通信信道的前提下,实时传输音乐创作所需的midi信号和元信息,并做到了在不增加通信信道的前提下实时传输多位参与创作者的多媒体内容。

利用本发明,当用户在线时,通过编辑已加密的媒体资源上传至服务器后的源文件内容,完成编辑后,浏览器f再次访问服务器时,所访问的源文件内容即为已编辑后的内容,从而实现在线编辑并与其他在线的艺术家同步的协作交流功能。

图3a、图3b分别为本发明实施例音频(流)文件的加密、解密过程示意图。

如图3a所示,该加密的过程包括如下步骤:

步骤311:准备好加密算法alg密钥key和加密解密的初始值iv;

步骤312:选择一种音频编码方式,用于对原始音频数据进行编码,如:flac、mp3、aac、opus、vorbis;

步骤313:初始化ogg输出流,给当前音频流分配一个二进制流序号serial_no,页序数page_seq_no置零;

步骤314:取一小段固定长度的音频数据wave_data_1,使用给定的音频编码方式对音频数据进行编码,得到编码后的二进制数据块data_block_1;

步骤315:将所述二进制数据块data_block_1写入ogg流,得到若干个ogg页;

步骤316:对新产生的ogg页,使用步骤311当中准备好的加密参数对该页的负载进行加密计算。其中,实际用到的加密初始值vi'=vixorserial_noxorpage_seq_no,页头当中包含的crc校验码使用加密后的内容作为负载重新计算。使用加密后的二进制数据替换该页原有的负载,把新产生的ogg页写入输出流。

步骤317:重复步骤314~步骤316,直至音频流结束。

如图3b所示,该解密的过程包括如下步骤:

步骤321:准备好加密算法alg密钥key和加密解密的初始值iv;

步骤322:用户或上层调用程序提供音频编码方式;

这里,所述的音频编码方式,包括flac、mp3、aac、opus、vorbis中的任意一种。

步骤323:初始化ogg输入流,获得音频输入流的二进制流序号serial_no;

步骤324:读入一个ogg页,获取当前页的crc校验码、页序数page_seq_no和负载;

步骤325:对当前页的负载进行crc校验,检测其是否完整;如果完整,则返回解密、解码后的原始音频;如果不完整,则提示上层应用,由上层应用进行静音、停止解码或提示用户有数据损坏等操作之一。

步骤326:计算实际使用的解密初始值vi'=vixorserial_noxorpage_seq_no;

步骤327:使用加密算法alg、密钥key和初始值vi'对当前ogg页的负载进行解密,获得解密后的数据data_block_1;

步骤328:使用步骤322中提供的音频解码方式对data_block_1进行解码,获得一小段音频数据wave_data_1;

步骤329:重复步骤324~步骤328,直到ogg输入流结束。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1