本发明涉及网络
技术领域:
,特别涉及一种流媒体数据播放方法、终端及流媒体服务器。
背景技术:
:随着技术的快速发展,越来越多的用户使用终端来播放诸如视频流、音频流等流媒体数据。而终端播放流媒体数据之前,需要从流媒体服务器中获取该流媒体数据。为了保证流媒体数据的安全性,终端从流媒体服务器中获取流媒体数据时,流媒体服务器需要对流媒体数据进行加密。目前,流媒体数据加密的方法基本都是基于对称加密算法RC4来实现,也即是,当流媒体服务器接收到终端发送的流媒体数据获取请求时,获取随机序列和加密密钥,随机序列由0-255的字符组成,通过该随机序列和加密密钥,生成密钥流,该密钥流的长度与该流媒体数据的长度相等。对于该流媒体数据中的每个字节和该密钥流中的每个字节,将位于同一位置的字节进行异或运算,得到加密后的流媒体数据,并将加密后的流媒体数据发送给该终端,使该终端对接收的流媒体数据进行解密,并对解密后的流媒体数据进行播放。由于通过RC4算法生成的密钥流中,出现重复字节的可能性较大,容易受到攻击,从而降低了流媒体数据的安全性。技术实现要素:为了解决现有技术的问题,本发明实施例提供了一种流媒体数据播放方法、终端及流媒体服务器。所述技术方案如下:第一方面,提供了一种流媒体数据播放方法,所述方法包括:当接收到终端发送的流媒体数据获取请求时,获取流媒体数据加密的随机种子和至少两个质数;基于所述随机种子和所述至少两个质数,确定所述流媒体数据包括的多个明文数据包的密钥流;基于所述多个明文数据包的密钥流,分别对所述多个明文数据包进行加密,得到多个密文数据包;将所述多个密文数据包发送给所述终端,使所述终端基于所述多个密文数据包播放所述流媒体数据。第二方面,提供了一种流媒体数据播放方法,所述方法包括:当接收到流媒体数据获取指令时,向流媒体服务器发送流媒体数据获取请求,使所述流媒体服务器返回流媒体数据的密文数据包,所述密文数据包为所述流媒体服务器对所述流媒体数据的明文数据包进行加密得到;当接收到所述流媒体服务器发送的密文数据包时,基于所述密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流;基于获取的密钥流,对所述密文数据包进行解密,得到所述明文数据包;基于所述明文数据包,播放所述流媒体数据。第三方面,提供了一种流媒体服务器,所述流媒体服务器包括:获取模块,用于当接收到终端发送的流媒体数据获取请求时,获取流媒体数据加密的随机种子和至少两个质数;确定模块,用于基于所述随机种子和所述至少两个质数,确定所述流媒体数据包括的多个明文数据包的密钥流;加密模块,用于基于所述多个明文数据包的密钥流,分别对所述多个明文数据包进行加密,得到多个密文数据包;发送模块,用于将所述多个密文数据包发送给所述终端,使所述终端基于所述多个密文数据包播放所述流媒体数据。第四方面,提供了一种终端,所述终端包括:发送模块,用于当接收到流媒体数据获取指令时,向流媒体服务器发送流媒体数据获取请求,使所述流媒体服务器返回流媒体数据的密文数据包,所述密文数据包为所述流媒体服务器对所述流媒体数据的明文数据包进行加密得到;获取模块,用于当接收到所述流媒体服务器发送的密文数据包时,基于所述密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流;解密模块,用于基于获取的密钥流,对所述密文数据包进行解密,得到所述明文数据包;播放模块,用于基于所述明文数据包,播放所述流媒体数据。本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种流媒体数据播放系统架构图;图2是本发明实施例提供的一种流媒体数据播放方法流程图;图3是本发明实施例提供的另一种流媒体数据播放方法流程图;图4是本发明实施例提供的又一种流媒体数据播放方法流程图;图5是本发明实施例提供的一种流媒体服务器的结构示意图;图6是本发明实施例提供的一种终端的结构示意图;图7是本发明实施例提供的一种流媒体服务器的结构示意图;图8是本发明实施例提供的一种终端的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。图1是本发明实施例提供的一种流媒体数据播放系统架构图。参见图1,该系统包括终端和流媒体服务器,该终端和流媒体服务器之间可以通过网络连接。该终端用于从流媒体服务器中获取流媒体数据包括的多个密文数据包,并对该多个密文数据包进行解密,得到多个明文数据包,并基于该多个明文数据包来播放该流媒体数据;流媒体服务器用于将终端请求的流媒体数据包括的每个明文数据包进行加密,得到多个密文数据包,并将得到多个密文数据包发送给终端。图2是本发明实施例提供的一种流媒体数据播放方法的流程图。参见图2,该方法应用于流媒体服务器中,该方法包括:步骤201:当接收到终端发送的流媒体数据获取请求时,获取流媒体数据加密的随机种子和至少两个质数。步骤202:基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流。步骤203:基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密,得到多个密文数据包。步骤204:将该多个密文数据包发送给该终端,使该终端基于该多个密文数 据包播放该流媒体数据。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。可选地,基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,包括:基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子;基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每个字节的种子;基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流。可选地,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子,包括:对于该多个明文数据包中的第一个明文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个明文数据包的种子;对于该第一个明文数据包之后的每个明文数据包,基于上一个明文数据包的种子、该第一质数和该第二质数,确定该明文数据包的种子,该上一个明文数据包为该明文数据包之前且与该明文数据包相邻的明文数据包。可选地,基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每个字节的种子, 包括:对于该多个明文数据包中的每个明文数据包,基于该明文数据包的种子,确定该明文数据包的内部种子;基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子。可选地,基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子,包括:对于该明文数据包内的第一个字节,基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该第一个字节的种子;对于该明文数据包内该第一个字节之后的每个字节,基于上一个字节的种子、该第三质数和该第四质数,确定该字节的种子,该上一个字节为该字节之前且与该字节相邻的字节。可选地,基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流,包括:对于该多个明文数据包中的每个明文数据包,获取该明文数据包内每个字节的种子的最低位字节,得到多个最低位字节;按照该明文数据包内每个字节的顺序,将该多个最低位字节组成该明文数据包的密钥流。上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。图3是本发明实施例提供的一种流媒体数据播放方法的流程图。参见图3,该方法应用于终端中,该方法包括:步骤301:当接收到流媒体数据获取指令时,向流媒体服务器发送流媒体数据获取请求,使该流媒体服务器返回流媒体数据的密文数据包,该密文数据包 为该流媒体服务器对该流媒体数据的明文数据包进行加密得到。步骤302:当接收到该流媒体服务器发送的密文数据包时,基于该密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流。步骤303:基于获取的密钥流,对该密文数据包进行解密,得到该明文数据包。步骤304:基于该明文数据包,播放该流媒体数据。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。可选地,基于该密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流之前,还包括:当接收到该流媒体服务器发送的第一个密文数据包时,基于该流媒体数据加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,该多个密文数据包包括该第一个密文数据包和该第一个密文数据包之后连续的指定数值个密文数据包;将该多个密文数据包的序号和该多个密文数据包的密钥流,存储在序号与密钥流之间的对应关系中。可选地,基于该流媒体数据加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,包括:基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,分别确定该多个密文数据包的种子;基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两 个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子;基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流。可选地,基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,分别确定该多个密文数据包的种子,包括:对于该多个密文数据包中的第一个密文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个密文数据包的种子;对于该第一个密文数据包之后的每个密文数据包,基于上一个密文数据包的种子、该第一质数和该第二质数,确定该密文数据包的种子,该上一个密文数据包为该密文数据包之前且与该密文数据包相邻的密文数据包。可选地,基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子,包括:对于该多个密文数据包中的每个密文数据包,基于该密文数据包的种子,确定该密文数据包的内部种子;基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子。可选地,基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子,包括:对于该密文数据包内的第一个字节,基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该第一个字节的种子;对于该密文数据包内该第一个字节之后的每个字节,基于上一个字节的种子、该第三质数和该第四质数,确定该字节的种子,该上一个字节为该字节之前且与该字节相邻的字节。可选地,基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流,包括:获取该密文数据包内每个字节的种子的最低位字节,得到多个最低位字节;按照该密文数据包内每个字节的顺序,将该多个最低位字节组成该密文数据包的密钥流。可选地,该方法还包括:当接收到该流媒体服务器发送的下一个密文数据包时,基于该多个密文数据包中最后一个密文数据包的种子和该至少两个质数,确定该最后一个密文数据包之后相邻的密文数据包的密钥流;基于该最后一个密文数据包之后相邻的密文数据包的序号和该最后一个密文数据包之后相邻的密文数据包的密钥流,对该序号与密钥流之间的对应关系进行更新。上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。图4是本发明实施例提供的一种流媒体数据播放方法的流程图。参见图4,该方法包括:步骤401:当终端接收到流媒体数据获取指令时,向流媒体服务器发送流媒体数据获取请求。终端为了播放流媒体数据,需要从流媒体服务器中获取流媒体数据,因此,当终端接收到流媒体数据获取指令时,该终端可以向流媒体服务器发送流媒体数据获取请求,该流媒体数据获取请求中可以携带流媒体数据标识。流媒体数据获取指令用于生成流媒体数据获取请求,并从流媒体服务器中获取对应的流媒体数据。且该流媒体数据获取指令可以由用户触发,也即是,用户可以通过指定操作触发该流媒体数据获取指令,该指定操作可以为点击操作、滑动操作、语音操作等,本发明实施例对此不做具体限定。另外,流媒体数据标识可以为该流媒体数据的名称、该流媒体数据的播放地址、该流媒体数据的编号等等,本发明实施例对此不做具体限定。步骤402:当流媒体服务器接收到终端发送的流媒体数据获取请求时,获取该流媒体数据加密的随机种子和至少两个质数。当流媒体服务器接收到终端发送的流媒体数据获取请求时,可以根据该流媒体数据获取请求携带的流媒体数据标识,从存储的流媒体数据标识与流媒体数据之间的对应关系中,获取对应的流媒体数据。之后,流媒体服务器可以将获取的流媒体数据发送给该终端,而为了提高流媒体数据的安全性,流媒体服务器将流媒体数据发送给该终端之前,流媒体服务器可以对该流媒体数据进行加密,因此,流媒体服务器可以获取该流媒体数据加密的随机种子和至少两个质数。流媒体服务器获取该流媒体数据加密的随机种子和至少两个质数的操作可以为:从预设文本库中,随机选择一个文本,对选择的文本进行特征值运算,得到该文本的特征值,将该特征值按照字节平均划分为两部分,得到第一子特征值和第二子特征值,第一子特征值包括该特征值的前半部分的字节,第二子特征值包括该特征值的后半部分的字节,将第二子特征值确定为该流媒体数据加密的随机种子。将第一子特征值按照字节平均划分为四部分,依次得到第一数值、第二数值、第三数值和第四数值,基于第一数值和第二数值,从第一预设质数数组中,获取第一质数和第二质数,基于第三数值和第四数值,从第二预设质数数组中,获取第三质数和第四质数。比如,对选择的文本进行特征值运算,得到该文本的特征值为16字节,此时,可以将该特征值的前8个字节确定为第一子特征值,将该特征值的后8个字节确定为第二子特征值,并确定该流媒体数据的随机种子为该特征值的后8个字节,也即是,该流媒体数据的随机种子为64位,并将该特征值的前8个字节进行平均划分,得到4个2字节的数值,也即是第一数值、第二数值、第三数值和第四数值。其中,基于第一数值和第二数值,从第一预设质数数组中,获取第一质数 和第二质数的具体操作可以为:从第一预设质数数组中,获取位于第一数值位置上的质数,将该质数确定为第一质数,以及从第一预设质数数组中,获取位于第二数值位置上的质数,将该质数确定为第二质数。同理,基于第三数值和第四数值,从第二预设质数数组中,获取第三质数和第四质数的具体操作可以为:从第二预设质数数组中,获取位于第三数值位置上的质数,将该质数确定为第三质数,以及从第二预设质数数组中,获取位于第四数值位置上的质数,将该质数确定为第四质数。比如,流媒体服务器从预设文本库中,随机选择一个文本为“唧唧复唧唧,木兰当户织”,对该文本进行特征值运算,得到该文本的特征值为89759644,将该特征值按照字节平均划分,得到第一子特征值为8975,第二子特征值为9644,确定该流媒体数据加密的随机种子为9644。将第一子特征值8975按照字节平均划分为四部分,依次得到第一数值为8、第二数值为9、第三数值为7和第四数值为5,基于第一数值8和第二数值9,从第一预设质数数组中,获取位于第8位置上的质数为4200000131,以及从第一预设质数数组中,获取位于第9位置上的质数为4200000149,因此,确定第一质数为4200000131,第二质数为4200000149。基于第三数值7和第四数值5,从第二预设质数数组中,获取位于第7位置上的质数为65579,以及从第二预设质数数组中,获取位于第5位置上的质数为65557,因此,确定第三质数为65579,以及确定第四质数为65557。需要说明的是,特征值运算可以为DM5(MessageDigest5,消息摘要5)运算、SHA(SecureHashAlgorithm1,安全散列算法)运算、哈希运算等等,本发明实施例对此不做具体限定。另外,预设文本库、第一预设质数数组和第二预设质数数组可以是事先存储的,且第一预设质数数组可以为42亿往上找临近的65536个质数,第二预设质数数组可以为65536往上找临近的65536个质数。并且为了使本发明实施例生成密钥流中的重复周期较大,避免遭受攻击,可以使第一预设质数数组和第二预设质数数组中的质数对4取模等于1,也即是,第一预设质数数组和第二预设质数数组中的质数均需满足对4取模等于1这个 条件。可选地,在本发明实施例中,可以只需保证第一预设质数数组中的质数满足对4取模等于1这个条件,本发明实施例对此不做具体限定。另外,由于流媒体服务器获取该流媒体数据加密的随机种子和至少两个质数的方式较多,也即是,流媒体服务器不仅可以通过上述方式获取随机种子和至少两个质数,实际应用中,还可以通过其他的方式进行获取,比如,可以从第一预设质数数组中随机选择两个质数,作为第一质数和第二质数,以及从第二预设质数数值中随机选择两个质数,作为第三质数和第四质数,并随机选择一个数值,作为随机种子。本发明实施例对此不进行一一列出。需要说明的是,在本发明实施例中,流媒体服务器每接收到一个终端发送的流媒体数据获取请求时,均可以获取一次随机种子和至少两个质数,也即是,对于不同的终端,该流媒体数据加密的随机种子和至少两个质数可以不同,并且对于不同的流媒体数据,随机种子和至少两个质数也可以不同,本发明实施例对此不做具体限定。步骤403:流媒体服务器基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子。由于流媒体服务器基于流媒体数据标识,获取的流媒体数据为未加密的数据,也即是,获取的流媒体数据为明文数据,因此,当流媒体服务器获取到该流媒体数据加密的随机种子和至少两个质数时,该流媒体服务器可以确定该流媒体数据包括的多个明文数据包的种子。而流媒体服务器基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子的具体操作可以为:对于该多个明文数据包中的第一个明文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个明文数据包的种子;对于第一个明文数据包之后的每个明文数据包,基于上一个明文数据包的种子、第一质数和第二质数,确定该明文数据包的种子,上一个明文数据包为该明文数据包之前且 与该明文数据包相邻的明文数据包。在本发明实施例中,对于该流媒体数据包括的任一个明文数据包,都可以通过如下公式(1),计算该明文数据包的种子;F(n)=(F(n-1)*A+B)mod264(1)其中,上述公式(1)中,n为该流媒体数据包包括的明文数据包的序号,该序号可以位于该明文数据包的包头中,F(n)为序号为n的明文数据包的种子,F(n-1)为序号为n的明文数据包的上一个明文数据包的种子,也即是,F(n-1)为序号为n-1的明文数据包的种子,A为该至少两个质数中的第一质数,B为该至少两个质数中的第二质数,mod为取模运算,且对264进行取模运算,不用管计算结果是否会溢出。因此,对于该流媒体数据包括的第一个明文数据包,F(n-1)为F(0),也即是该流媒体数据的随机种子,因此,对于该多个明文数据包中的第一个明文数据包,可以基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个明文数据包的种子,而对于第一个明文数据包之后的每个明文数据包,需要基于上一个明文数据包的种子、第一质数和第二质数,确定该明文数据包的种子。比如,对于第二个明文数据包,需要基于第一个明文数据包的种子、第一质数和第二质数,确定第二个明文数据包的种子。需要说明的是,在本发明实施例中,明文数据包的序号为对该流媒体数据包括的多个明文数据包按照顺序进行编号得到的序号,比如,第一个明文数据包的序号为1,第二个明文数据包的序号为2,同理,每个明文数据包内的每个字节的序号也是按照该明文数据包内多个字节按照顺序进行编号得到。另外,在本发明实施例中,不仅可以按照上述公式(1)确定每个明文数据包的种子,还可以通过其他方式来确定,比如,对上述公式(1)稍加变形,本发明实施例对此不做具体限定。步骤404:流媒体服务器基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每 个字节的种子。为了增加流媒体数据的安全性,流媒体服务器确定该流媒体数据包括的每个明文数据包的种子之后,还可以确定每个明文数据包内每个字节的种子,而流媒体服务器基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每个字节的种子的具体操作可以为:对于该多个明文数据包中的每个明文数据包,基于该明文数据包的种子,确定该明文数据包的内部种子;基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子。流媒体服务器基于该明文数据包的种子,确定该明文数据包的内部种子的操作可以为:基于该明文数据包的种子,可以按照如下公式(2),确定该明文数据包的内部种子;f(0)=F(n)mod232(2)其中,在上述公式(2)中,f(0)为该明文数据包的内部种子,当该明文数据包的序号为n时,F(n)为该明文数据包的种子,且对232进行取模运算,不用管计算结果是否会溢出。流媒体服务器基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子,包括:对于该明文数据包内的第一个字节,基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定第一个字节的种子;对于第一个字节之后的每个字节,基于上一个字节的种子、第三质数和第四质数,确定该字节的种子,上一个字节为该字节之前且与该字节相邻的字节。在本发明实施例中,对于该明文数据包内的任一个字节,都可以通过如下公式(3),计算该字节的种子;f(m)=(f(m-1)*C+D)mod232(3)其中,在上述公式(3)中,m为该明文数据包内字节的序号,f(m)为该明文数据包内序号为m的字节的种子,f(m-1)为该明文数据包内序号为m的字节的上一个字节的种子,C为第三质数,D为第四质数,且对232进行取模运算,不用管计算结果是否会溢出。因此,对于该明文数据包内的第一个字节,f(m-1)为f(0),也即是该明文数据包的内部种子,因此,对于该明文数据包内的第一个字节,可以基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定第一个字节的种子,而对于第一个字节之后的每个字节,需要基于上一个字节的种子、第三质数和第四质数,确定该字节的种子,上一个字节为该字节之前且与该字节相邻的字节。比如,对于第二个字节,需要基于第一个字节的种子、第三质数和第四质数,确定第二个字节的种子。需要说明的是,在本发明实施例中,不仅可以按照上述公式(2)确定每个明文数据包的内部种子,以及不仅可以按照上述公式(3)确定明文数据包内每个字节的种子,还可以通过其他方式来确定,比如,对上述公式(2)和公式(3)稍加变形,本发明实施例对此不做具体限定。步骤405:流媒体服务器基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流。当流媒体服务器确定该多个明文数据包内每个字节的种子之后,该流媒体服务器可以基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流。而为了便于加密,以及减小加密的复杂度,流媒体服务器基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流的操作可以为:对于该多个明文数据包中的每个明文数据包,获取该明文数据包内每个字节的种子的最低位字节,得到多个最低位字节;按照该明文数据包内每个字节的顺序,将该多个最低位字节组成该明文数据包的密钥流。比如,第二个明文数据包包括三个字节,获取该三个字节中的第一个字节的最低位字节为01101011,第二个字节的最低位字节为10101100,第三个字节 的最低位字节为10111011,此时,可以按照该三个字节的顺序,组成第二个明文数据包的密钥流为011010111010110010111011。在本发明实施例中,流媒体服务器获取该明文数据包内每个字节的种子的最低位字节,得到多个最低位字节时,可以按照如下公式(4)来获取;k(m)=f(m)&0xFF(4)其中,在上述公式(4)中,k(m)为从该明文数据包内序号为m的字节的种子中,获取的最低位字节,&为与运算,0xFF为255,转换为二进制数为11111111。步骤406:流媒体服务器基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密,得到多个密文数据包,并将该多个密文数据包发送给终端。具体地,对于该多个明文数据包中的每个明文数据包,可以将该明文数据包内每个字节和该明文数据包的密钥流内每个字节中,位于同一位置的字节进行异或运算,从而得到该明文数据包对应的密文数据包,进而将该密文数据包发送给该终端。比如,对于第二个明文数据包,该明文数据包中的第一个字节为10110100,第二个字节为10101110,第三个字节为11101100,第二个明文数据包的密钥流内的第一个字节为01101011,第二个字节为10101100,第三个字节为10111011。因此,将该明文数据包的第一个字节10110100与第二个明文数据包的密钥流内的第一个字节01101011进行异或运算,得到密文数据包的第一个字节为11011111,将该明文数据包的第二个字节10101110与第二个明文数据包的密钥流内的第二个字节10101100进行异或运算,得到密文数据包的第二个字节为00000010,以及将该明文数据包的第三个字节11101100与第二个明文数据包的密钥流内的第三个字节10111011进行异或运算,得到密文数据包的第三个字节为01010111。进而得到该明文数据包对应的密文数据包为110111110000001001010111。需要说明的是,流媒体服务器可以每确定一个明文数据包的密钥流时,对该明文数据包进行加密,然后再将该密文数据包发送给该终端。当然,流媒体 服务器也可以获取到该流媒体数据包括的所有明文数据包的密钥流时,再对该所有的明文数据包进行加密,之后,再将加密后的密文数据包逐个发送给该终端。优选地,为了使终端较快地播放该流媒体数据,流媒体服务器可以每确定一个明文数据包的密钥流,对该明文数据包进行加密,然后再将该密文数据包发送给该终端。其中,通过上述步骤401-406的步骤对该流媒体数据包括的明文数据包进行加密,并将加密后的密文数据包发送给该终端,该终端可以按照如下的步骤对该密文数据包进行解密,从而播放该流媒体数据。步骤407:当终端接收到流媒体服务器发送的密文数据包时,基于该密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流。在本发明实施例中,流媒体服务器可以向终端发送第一个密文数据包时,将该流媒体数据加密的随机种子和至少两个质数发送给该终端,还可以在该终端与流媒体服务器建立连接时,流媒体服务器将该流媒体数据加密的随机种子和至少两个质数发送给该终端,本发明实施例对此不做具体限定。因此,当终端接收到流媒体服务器发送的第一个密文数据包时,终端可以基于对该流媒体数据进行加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,该多个密文数据包包括第一个密文数据包和第一个密文数据包之后连续的指定数值个密文数据包;并将该多个密文数据包的序号和该多个密文数据包的密钥流,存储在序号与密钥流之间的对应关系中。当终端接收到流媒体服务器发送的下一个密文数据包时,可以基于下一个密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流。比如,终端可以基于对该流媒体数据进行加密的随机种子和至少两个质数,确定多个密文数据包的密钥流为101110111000110、110111110000001001010111、101110110110111001110011……,因此,可以将该多个密文数据包的序号和该多个密文数据包的密钥流,存储在如下表1所示的序号与密钥流之间的对应关系中。表1序号密钥流110111011100011021101111100000010010101113101110110110111001110011…………其中,指定数值是事先设置的,比如,指定数值为1999,如此,多个密文数据包的个数为2000,本发明实施例对此不做具体限定。由于终端接收到的是该流媒体数据的密文数据包,也即是,对该流媒体数据进行加密的加密数据,因此,终端接收到流媒体服务器发送的密文数据包时,需要确定该密文数据包的密钥流,从而基于该密钥流对该密文数据包进行解密。而终端基于该流媒体数据加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,包括:终端基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,分别确定该多个密文数据包的种子;基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子;基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流。其中,终端基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,分别确定该多个密文数据包的种子时,与上述流媒体服务器确定明文数据包种子的方法相同,具体为:对于该多个密文数据包中的第一个密文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个密文数据包的种子;对于第一个密文数据包之后的每个密文数据包,基于上一个密文数据包的种子、第一质数和第二质数,确定该密文数据包的种子,上一个密文数据包为该密文数据包之前且与该密文数据包相邻的密文数据包。在本发明实施例中,对于该流媒体数据包括的任一个密文数据包,都可以通过上述公式(1),计算该密文数据包的种子;只不过,此时上述公式(1)中,n为该流媒体数据包包括的密文数据包的序号,F(n)为序号为n的密文数据包的种子,F(n-1)为序号为n的密文数据包的上一个密文数据包的种子。因此,对于该流媒体数据包括的第一个密文数据包,F(n-1)为F(0),也即是该流媒体数据的随机种子,因此,对于该多个密文数据包中的第一个密文数据包,可以基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个密文数据包的种子,而对于第一个密文数据包之后的每个密文数据包,需要基于上一个密文数据包的种子、第一质数和第二质数,确定该密文数据包的种子。比如,对于第二个密文数据包,需要基于第一个密文数据包的种子、第一质数和第二质数,确定第二个密文数据包的种子。其中,终端基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子,包括:对于该多个密文数据包中的每个密文数据包,基于该密文数据包的种子,确定该密文数据包的内部种子;基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子。终端基于该密文数据包的种子,确定该密文数据包的内部种子的操作可以与上述流媒体服务器确定明文数据包内部种子的方法相同,具体为:基于该密文数据包的种子,可以按照上述公式(2),确定该密文数据包的内部种子,只不过此时,上述公式(2)中的f(0)为该密文数据包的内部种子,当该密文数据包的序号为n时,F(n)为该密文数据包的种子。再者,终端基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子的方法,与上述流媒体服务器确定明文数据包内每个字节的种子的方法相同,具体为:对于该密文数据包内的第一个字节,基于该密文数据包的内部种子、该至少两 个质数中的第三质数和该至少两个质数中的第四质数,确定第一个字节的种子;对于第一个字节之后的每个字节,基于上一个字节的种子、第三质数和第四质数,确定该字节的种子,上一个字节为该字节之前且与该字节相邻的字节。在本发明实施例中,对于该密文数据包内的任一个字节,都可以通过上述公式(3),计算该字节的种子;只不过此时,上述公式(3)中的m为该密文数据包内字节的序号,f(m)为该密文数据包内序号为m的字节的种子,f(m-1)为该密文数据包内序号为m的字节的上一个字节的种子,C为第三质数,D为第四质数。因此,对于该密文数据包内的第一个字节,f(m-1)为f(0),也即是该密文数据包的内部种子,因此,对于该密文数据包内的第一个字节,可以基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定第一个字节的种子,而对于第一个字节之后的每个字节,需要基于上一个字节的种子、第三质数和第四质数,确定该字节的种子,上一个字节为该字节之前且与该字节相邻的字节。比如,对于第二个字节,需要基于第一个字节的种子、第三质数和第四质数,确定第二个字节的种子。其中,终端基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流,包括:获取该密文数据包内每个字节的种子的最低位字节,得到多个最低位字节;按照该密文数据包内每个字节的顺序,将该多个最低位字节组成该密文数据包的密钥流。在本发明实施例中,终端获取该密文数据包内每个字节的种子的最低位字节,得到多个最低位字节时,可以按照上述公式(4)来获取;只不过此时,上述公式(4)中的k(m)为从该密文数据包内序号为m的字节的种子中,获取的最低位字节。进一步地,该方法还包括:当终端接收到流媒体服务器发送的下一个密文数据包时,基于该多个密文数据包中最后一个密文数据包的种子和该至少两个质数,确定最后一个密文数据包之后相邻的密文数据包的密钥流;基于最后一个密文数据包之后相邻的密文数据包的序号和最后一个密文数据包之后相邻的 密文数据包的密钥流,对序号与密钥流之间的对应关系进行更新。比如,当该终端接收到流媒体服务器发送的第一个密文数据包时,计算该流媒体数据中前2000个密文数据包的密钥流,而当该终端接收到流媒体服务器发送的第二个密文数据包时,可以计算第2001个密文数据包的密钥流,当该终端接收到流媒体服务器发送的第三个密文数据包时,可以计算第2002个密文数据包的密钥流。其中,终端基于最后一个密文数据包之后相邻的密文数据包的序号和最后一个密文数据包之后相邻的密文数据包的密钥流,对序号与密钥流之间的对应关系进行更新的操作可以为:终端将最后一个密文数据包之后相邻的密文数据包的序号和最后一个密文数据包之后相邻的密文数据包的密钥流,存储在该序号与密钥流之间的对应关系中。或者,终端该序号与密钥流之间的对应关系中,第一个密文数据包的序号和对应的密钥流删除,并将最后一个密文数据包之后相邻的密文数据包的序号和最后一个密文数据包之后相邻的密文数据包的密钥流,存储在该序号与密钥流之间的对应关系中。比如,当该终端接收到流媒体服务器发送的第二个密文数据包时,可以计算第2001个密文数据包的密钥流,并将第2001个密文数据包的序号和密钥流存储在序号与密钥流之间的对应关系中。或者,将该序号与密钥流之间的对应关系中,第一个密文数据包的序号和密钥流删除,并将第2001个密文数据包的序号和密钥流存储在序号与密钥流之间的对应关系中。需要说明的是,在本发明实施例中,流媒体服务器向该终端发送的密文数据包的包头中可以携带密文数据包的序号,且不对该密文数据包的序号进行加密。因此,当流媒体服务器通过UDP(UserDatagramProtocol,用户数据包协议)传输密文数据包且发送的密文数据包出现丢包或者乱序时,只要从该密文数据包的包头中,获取该密文数据包的序号,就可以从序号与密钥流之间的对应关系中,获取对应的密钥流,从而对该密文数据包进行解密,提高了该密文数据包解密的可靠性。另外,本发明实施例进行加密时,只需计算明文数据包 的种子、明文数据包的内部种子和明文数据包内每个字节的种子,减少了计算复杂度,对明文数据包进行加密的性能较好,进而提高了对明文数据包进行加密的效率;同理,本发明实施例进行解密时,也只需计算密文数据包的种子、密文数据包的内部种子和密文数据包内每个字节的种子,减少了计算复杂度,对密文数据包进行加密的性能较好,进而提高了对密文数据包进行解密的效率。需要说明的是,当终端接收到第一个密文数据包时,可以基于该流媒体数据加密的随机种子和至少两个质数,确定该多个密文数据包的密钥流,然后,再基于第一个密文数据包的密钥流,对第一个密文数据包进行解密,得到第一个明文数据包,并基于第一个明文数据包,播放该流媒体数据。当然,当终端接收到第一个密文数据包时,该终端可以基于该流媒体数据加密的随机种子和至少两个质数,确定出第一个密文数据包的密钥流时,基于第一个密文数据包的密钥流,对第一个密文数据包进行解密,得到第一个明文数据包,并基于第一个明文数据包,播放该流媒体数据,并在播放该流媒体数据的过程中,计算第一个密文数据包之后连续的指定数值个密文数据包的密钥流。本发明实施例对此不做具体限定。步骤408:终端基于获取的密钥流,对该密文数据包进行解密,得到对应的明文数据包,并基于该明文数据包,播放该流媒体数据。具体地,终端可以将获取的密钥流内每个字节和该密文数据包内每个字节中,位于同一位置的字节进行异或运算,从而得到该密文数据包对应的明文数据包,并基于该明文数据包,播放该流媒体数据。需要说明的是,在本发明实施例中,当流媒体服务器通过TCP(TransmissionControlProtocol,传输控制协议)传输密文数据包时,由于TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议,也即是,TCP是流式传输数据,而不是一个数据包一个数据包的传输,因此,通过本发明实施例提供的方法进行加密时,需要将该流媒体数据进行划分,得到多个明文数据包。而具体地如何划分,本发明实施例对此不作具体限定。另外,本发明实施例提供的加密和解密方法不仅可以应用于播放流媒体数据的场景中,还可以应用其他场景中,比如,当用户登录某个应用时,为了确保登录账号和密码的安全性,可以对登录账号密码进行加密。本发明实施例对此不做具体限定。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。另外,该流媒体数据包括的每个明文数据包对应一个密钥流,且该密钥流不依赖于明文数据包,因此,将该流媒体数据包括的密文数据包发送给终端的过程中,如果出现数据包丢失或者乱序时,也可以对接收的密文数据包进行解密,提高了解密的可靠性。图5是本发明实施例提供的一种流媒体服务器的结构示意图。参见图5,该流媒体服务器包括:获取模块501,用于当接收到终端发送的流媒体数据获取请求时,获取流媒体数据加密的随机种子和至少两个质数;确定模块502,用于基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流;加密模块503,用于基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密,得到多个密文数据包;发送模块504,用于将该多个密文数据包发送给该终端,使该终端基于该多个密文数据包播放该流媒体数据。可选地,确定模块502包括:第一确定单元,用于基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子;第二确定单元,用于基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每个字节的种子;第三确定单元,用于基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流。可选地,第一确定单元包括:第一确定子单元,用于对于该多个明文数据包中的第一个明文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个明文数据包的种子;第二确定子单元,用于对于该第一个明文数据包之后的每个明文数据包,基于上一个明文数据包的种子、该第一质数和该第二质数,确定该明文数据包的种子,该上一个明文数据包为该明文数据包之前且与该明文数据包相邻的明文数据包。可选地,第二确定单元包括:第三确定子单元,用于对于该多个明文数据包中的每个明文数据包,基于该明文数据包的种子,确定该明文数据包的内部种子;第四确定子单元,用于基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子。可选地,第四确定子单元,具体用于:对于该明文数据包内的第一个字节,基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该第一个字节的种子;对于该明文数据包内该第一个字节之后的每个字节,基于上一个字节的种子、该第三质数和该第四质数,确定该字节的种子,该上一个字节为该字节之前且与该字节相邻的字节。可选地,第三确定单元包括:获取子单元,用于对于该多个明文数据包中的每个明文数据包,获取该明文数据包内每个字节的种子的最低位字节,得到多个最低位字节;组成子单元,用于按照该明文数据包内每个字节的顺序,将该多个最低位字节组成该明文数据包的密钥流。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。图6是本发明实施例提供的一种终端的结构示意图。参见图6,该终端包括:发送模块601,用于当接收到流媒体数据获取指令时,向流媒体服务器发送流媒体数据获取请求,使该流媒体服务器返回流媒体数据的密文数据包,该密文数据包为该流媒体服务器对该流媒体数据的明文数据包进行加密得到;获取模块602,用于当接收到该流媒体服务器发送的密文数据包时,基于该密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流;解密模块603,用于基于获取的密钥流,对该密文数据包进行解密,得到该明文数据包;播放模块604,用于基于该明文数据包,播放该流媒体数据。可选地,该终端还包括:第一确定模块,用于当接收到该流媒体服务器发送的第一个密文数据包时,基于该流媒体数据加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,该多个密文数据包包括该第一个密文数据包和该第一个密文数据包之后连续的指定数值个密文数据包;存储模块,用于将该多个密文数据包的序号和该多个密文数据包的密钥流,存储在序号与密钥流之间的对应关系中。可选地,第一确定模块包括:第一确定单元,用于基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,分别确定该多个密文数据包的种子;第二确定单元,用于基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子;第三确定单元,用于基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流。可选地,第一确定单元包括:第一确定子单元,用于对于该多个密文数据包中的第一个密文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个密文数据包的种子;第二确定子单元,用于对于该第一个密文数据包之后的每个密文数据包,基于上一个密文数据包的种子、该第一质数和该第二质数,确定该密文数据包的种子,该上一个密文数据包为该密文数据包之前且与该密文数据包相邻的密文数据包。可选地,第二确定单元包括:第三确定子单元,用于对于该多个密文数据包中的每个密文数据包,基于 该密文数据包的种子,确定该密文数据包的内部种子;第四确定子单元,用于基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子。可选地,第四确定子单元,具体用于:对于该密文数据包内的第一个字节,基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该第一个字节的种子;对于该密文数据包内该第一个字节之后的每个字节,基于上一个字节的种子、该第三质数和该第四质数,确定该字节的种子,该上一个字节为该字节之前且与该字节相邻的字节。可选地,第三确定单元包括:获取子单元,用于获取该密文数据包内每个字节的种子的最低位字节,得到多个最低位字节;组成子单元,用于按照该密文数据包内每个字节的顺序,将该多个最低位字节组成该密文数据包的密钥流。可选地,该终端还包括:第二确定模块,用于当接收到该流媒体服务器发送的下一个密文数据包时,基于该多个密文数据包中最后一个密文数据包的种子和该至少两个质数,确定该最后一个密文数据包之后相邻的密文数据包的密钥流;更新模块,用于基于该最后一个密文数据包之后相邻的密文数据包的序号和该最后一个密文数据包之后相邻的密文数据包的密钥流,对该序号与密钥流之间的对应关系进行更新。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包 的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。需要说明的是:上述实施例提供的流媒体数据播放装置在流媒体数据播放时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流媒体数据播放装置与流媒体数据播放方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。请参考图7,其示出了本发明一个实施例提供的流媒体服务器的结构示意图。所述流媒体服务器700包括中央处理单元(CPU)701、包括随机存取存储器(RAM)702和只读存储器(ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。所述流媒体服务器700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)706,和用于存储操作系统713、应用程序710和其他程序模块715的大容量存储设备707。所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机可读介质为流媒体服务器700提供非易失性存储。也就是说,所述大容量存储设备707可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。根据本发明的各种实施例,所述流媒体服务器700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即流媒体服务器700可以通过连接在所述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的流媒体数据播放方法的指令,包括:当接收到终端发送的流媒体数据获取请求时,获取流媒体数据加密的随机种子和至少两个质数;基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流;基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密,得到多个密文数据包;将该多个密文数据包发送给该终端,使该终端基于该多个密文数据包播放 该流媒体数据。可选地,基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,包括:基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子;基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每个字节的种子;基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流。可选地,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该流媒体数据包括的多个明文数据包的种子,包括:对于该多个明文数据包中的第一个明文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个明文数据包的种子;对于该第一个明文数据包之后的每个明文数据包,基于上一个明文数据包的种子、该第一质数和该第二质数,确定该明文数据包的种子,该上一个明文数据包为该明文数据包之前且与该明文数据包相邻的明文数据包。可选地,基于该多个明文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个明文数据包内每个字节的种子,包括:对于该多个明文数据包中的每个明文数据包,基于该明文数据包的种子,确定该明文数据包的内部种子;基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子。可选地,基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该明文数据包内每个字节的种子,包括:对于该明文数据包内的第一个字节,基于该明文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该第一个字节的种子;对于该明文数据包内该第一个字节之后的每个字节,基于上一个字节的种子、该第三质数和该第四质数,确定该字节的种子,该上一个字节为该字节之前且与该字节相邻的字节。可选地,基于该多个明文数据包内每个字节的种子,分别确定该多个明文数据包的密钥流,包括:对于该多个明文数据包中的每个明文数据包,获取该明文数据包内每个字节的种子的最低位字节,得到多个最低位字节;按照该明文数据包内每个字节的顺序,将该多个最低位字节组成该明文数据包的密钥流。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。请参考图8,其示出了本发明一个实施例提供的终端的结构方框图,终端800可以包括通信单元810、包括有一个或一个以上计算机可读存储介质的存储器820、输入单元830、显示单元840、传感器850、音频电路860、WIFI(WirelessFidelity,无线保真)模块870、包括有一个或者一个以上处理核心的处理器880、以及电源890等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件, 或者不同的部件布置。其中:通信单元810可用于收发信息或通话过程中,信号的接收和发送,该通信单元810可以为RF(RadioFrequency,射频)电路、路由器、调制解调器、等网络通信设备。特别地,当通信单元810为RF电路时,将基站的下行信息接收后,交由一个或者一个以上处理器880处理;另外,将涉及上行的数据发送给基站。通常,作为通信单元的RF电路包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,通信单元810还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(GlobalSystemofMobilecommunication,全球移动通讯系统)、GPRS(GeneralPacketRadioService,通用分组无线服务)、CDMA(CodeDivisionMultipleAccess,码分多址)、WCDMA(WidebandCodeDivisionMultipleAccess,宽带码分多址)、LTE(LongTermEvolution,长期演进)、电子邮件、SMS(ShortMessagingService,短消息服务)等。存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器820还可以包括存储器控制器,以提供处理器880和输入单元830对存储器820的访问。输入单元830可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。优选地,输入单元830可包括触敏表面831以及其他输入设备832。触敏表面831,也称 为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面831上或在触敏表面831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面831。除了触敏表面831,输入单元830还可以包括其他输入设备832。优选地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元840可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元840可包括显示面板841,可选的,可以采用LCD(LiquidCrystalDisplay,液晶显示器)、OLED(OrganicLight-EmittingDiode,有机发光二极管)等形式来配置显示面板841。进一步的,触敏表面831可覆盖显示面板841,当触敏表面831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图8中,触敏表面831与显示面板841是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面831与显示面板841集成而实现输入和输出功能。终端800还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板841和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出 重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。音频电路860、扬声器861,传声器862可提供用户与终端800之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经通信单元810以发送给比如另一终端,或者将音频数据输出至存储器820以便进一步处理。音频电路860还可能包括耳塞插孔,以提供外设耳机与终端800的通信。为了实现无线通信,该终端上可以配置有无线通信单元870,该无线通信单元870可以为WIFI模块。WIFI属于短距离无线传输技术,终端800通过无线通信单元870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图中示出了无线通信单元870,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。处理器880是终端800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行终端800的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器880可包括一个或多个处理核心;优选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。终端800还包括给各个部件供电的电源890(比如电池),优选的,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理 充电、放电、以及功耗管理等功能。电源860还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。在本实施例中,终端还包括有一个或者一个以上的程序,这一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行本发明实施例提供的流媒体数据播放方法的指令,包括:当接收到流媒体数据获取指令时,向流媒体服务器发送流媒体数据获取请求,使该流媒体服务器返回流媒体数据的密文数据包,该密文数据包为该流媒体服务器对该流媒体数据的明文数据包进行加密得到;当接收到该流媒体服务器发送的密文数据包时,基于该密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流;基于获取的密钥流,对该密文数据包进行解密,得到该明文数据包;基于该明文数据包,播放该流媒体数据。可选地,基于该密文数据包的序号,从存储的序号与密钥流之间的对应关系中,获取对应的密钥流之前,还包括:当接收到该流媒体服务器发送的第一个密文数据包时,基于该流媒体数据加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,该多个密文数据包包括该第一个密文数据包和该第一个密文数据包之后连续的指定数值个密文数据包;将该多个密文数据包的序号和该多个密文数据包的密钥流,存储在序号与密钥流之间的对应关系中。可选地,基于该流媒体数据加密的随机种子和至少两个质数,确定多个密文数据包的密钥流,包括:基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至 少两个质数中的第二质数,分别确定该多个密文数据包的种子;基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子;基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流。可选地,基于该流媒体数据加密的随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,分别确定该多个密文数据包的种子,包括:对于该多个密文数据包中的第一个密文数据包,基于该随机种子、该至少两个质数中的第一质数和该至少两个质数中的第二质数,确定该第一个密文数据包的种子;对于该第一个密文数据包之后的每个密文数据包,基于上一个密文数据包的种子、该第一质数和该第二质数,确定该密文数据包的种子,该上一个密文数据包为该密文数据包之前且与该密文数据包相邻的密文数据包。可选地,基于该多个密文数据包的种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,分别确定该多个密文数据包内每个字节的种子,包括:对于该多个密文数据包中的每个密文数据包,基于该密文数据包的种子,确定该密文数据包的内部种子;基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子。可选地,基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该密文数据包内每个字节的种子,包括:对于该密文数据包内的第一个字节,基于该密文数据包的内部种子、该至少两个质数中的第三质数和该至少两个质数中的第四质数,确定该第一个字节的种子;对于该密文数据包内该第一个字节之后的每个字节,基于上一个字节的种 子、该第三质数和该第四质数,确定该字节的种子,该上一个字节为该字节之前且与该字节相邻的字节。可选地,基于该多个密文数据包内每个字节的种子,分别确定该多个密文数据包的密钥流,包括:获取该密文数据包内每个字节的种子的最低位字节,得到多个最低位字节;按照该密文数据包内每个字节的顺序,将该多个最低位字节组成该密文数据包的密钥流。可选地,该方法还包括:当接收到该流媒体服务器发送的下一个密文数据包时,基于该多个密文数据包中最后一个密文数据包的种子和该至少两个质数,确定该最后一个密文数据包之后相邻的密文数据包的密钥流;基于该最后一个密文数据包之后相邻的密文数据包的序号和该最后一个密文数据包之后相邻的密文数据包的密钥流,对该序号与密钥流之间的对应关系进行更新。在本发明实施例中,流媒体服务器是基于该随机种子和该至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流,并基于该多个明文数据包的密钥流,分别对该多个明文数据包进行加密。由于该流媒体数据的随机种子的随机性较大,且通过质数产生随机序列的重复性较低,因此,通过该随机种子和至少两个质数,确定该流媒体数据包括的多个明文数据包的密钥流时,该密钥流中出现重复字节的可能性较小,不容易受到攻击,进而提高了流媒体数据的安全性。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3