一种视频流地址鉴权方法及装置
技术领域
本发明涉及网络直播领域,尤其涉及一种视频流地址鉴权方法及装置。
背景技术
目前,网络直播是利用互联网及流媒体技术进行视频直播,然而视频内容的提供方存在视频流地址被第三方平台获取,从而可以不通过直播网站直接观看视频,即绕过了直播网站的视频播放器提供的视频播放。从而对于视频网站减少了网站的流量。
目前存在一些黑客通过逆向调试分析直播平台的视频流地址的鉴权函数,从而可以破解出如何生成视频流地址的函数,最终则绕过了平台的检测,以能够不通过直播网站直接观看视频,可见,现有视频流地址鉴权的安全性较低。
发明内容
本发明实施例通过提供一种视频流地址鉴权方法及装置,解决了现有视频流地址鉴权的安全性较低的技术问题。
第一方面,本发明实施例提供一种视频流地址鉴权方法,应用于直播平台对应的客户端,所述方法包括:
如果接收到对所述直播平台上的目标房间的直播视频观看指令,读取M个鉴权要素,所述鉴权要素与所述客户端当前的状态或所述目标房间相关,M为正整数;
通过多态哈希函数接口,从N个哈希函数中确定出与所述M个鉴权要素中第一鉴权要素匹配的目标哈希函数,N为大于1的整数;
调用所述目标哈希函数,以计算出与所述M个鉴权要素对应的哈希值;
通过多态加密函数接口,从K个加密函数中确定出与所述M个鉴权要素中第二鉴权要素匹配的目标加密函数,K为大于1的整数;
调用所述目标加密函数,以基于视频流服务器下发的随机密钥对所述哈希值加密,以得到视频流地址鉴权值;
向所述视频流服务器发送携带有所述视频流地址鉴权值和所述M个鉴权要素的视频流地址请求,所述视频流地址请求用于从所述视频流服务器请求所述目标房间的直播视频的视频流地址。
可选的,所述读取M个鉴权要素,包括:
读取所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌;和;
读取所述客户端当前的系统时间;和
读取所述目标房间的房间ID;和
读取所述客户端当前的IP地址;和
读取所述客户端的设备唯一ID。
可选的,如果所述第一鉴权要素为所述目标房间的房间ID,所述从N个哈希函数中确定出与所述M个鉴权要素中第一鉴权要素匹配的目标哈希函数,包括:
根据所述目标房间的房间ID判断出所述目标房间的房间号类别,其中,存在P个房间号类别与所述N个哈希函数之间的对应关系,P为大于1的整数;
根据所述P个房间号类别与所述N个哈希函数之间的对应关系,将所述目标房间的房间ID所属的房间号类别对应的哈希函数,判断为所述目标哈希函数。
可选的,如果所述第一鉴权要素为所述目标房间的房间ID,所述从N个哈希函数中确定出与所述M个鉴权要素中第一鉴权要素匹配的目标哈希函数,包括:
判断所述目标房间的房间ID的奇偶性;
如果判断出所述目标房间的房间ID为偶数,基于MD5类实例化所述多态哈希函数接口;
如果判断出所述目标房间的房间ID为奇数,基于CRC32类实例化所述多态哈希函数接口。
可选的,如果所述第二鉴权要素为所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌,所述从K个加密函数中确定出与所述M个鉴权要素中第二鉴权要素匹配的目标加密函数,包括:
判断出本次登陆所述直播平台时从所述视频流服务器所获取令牌的令牌类别,其中,存在Q个令牌类别与所述K个加密函数之间的对应关系,Q为大于1的整数;
根据所述Q个令牌类别与所述K个加密函数之间的对应关系,将本次登陆所述直播平台时从所述视频流服务器所获取令牌的令牌类别所匹配的加密函数,判断为目标加密函数。
可选的,如果所述第二鉴权要素为所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌,所述从K个加密函数中确定出与所述M个鉴权要素中第二鉴权要素匹配的目标加密函数,包括:
识别出所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌的最高位;
如果所述令牌的最高位为0,基于AES类实例化所述多态加密函数接口,否则,基于TEA类实例化所述多态加密函数接口。
可选的,所述调用所述目标哈希函数,以计算出与所述M个鉴权要素对应的哈希值,包括:
将所述客户端本次登陆所述直播平台时从所述视频流服务器所获取令牌、所述客户端当前的系统时间、所述目标房间的房间ID、所述客户端当前的IP地址、以及所述客户端的设备唯一ID依次经过所述目标哈希函数处理,以得出各个鉴权要素对应的哈希值。
第二方面,本发明实施例提供了一种视频流地址鉴权装置,应用于直播平台对应的客户端,所述装置包括:
读取单元,用于如果接收到对所述直播平台上的目标房间的直播视频观看指令,读取M个鉴权要素,所述鉴权要素与所述客户端当前的状态或所述目标房间相关,M为正整数;
第一确定单元,用于通过多态哈希函数接口,从N个哈希函数中确定出与所述M个鉴权要素中第一鉴权要素匹配的目标哈希函数,N为大于1的整数;
哈希值计算单元,用于调用所述目标哈希函数,以计算出与所述M个鉴权要素对应的哈希值;
第二确定单元,用于通过多态加密函数接口,从K个加密函数中确定出与所述M个鉴权要素中第二鉴权要素匹配的目标加密函数,K为大于1的整数;
加密计算单元,用于调用所述目标加密函数,以基于视频流服务器下发的随机密钥对所述哈希值加密,以得到视频流地址鉴权值;
请求发送单元,用于向所述视频流服务器发送携带有所述视频流地址鉴权值和所述M个鉴权要素的视频流地址请求,所述视频流地址请求用于从所述视频流服务器请求所述目标房间的直播视频的视频流地址。
可选的,所述读取单元,具体用于:
读取所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌;和;
读取所述客户端当前的系统时间;和
读取所述目标房间的房间ID;和
读取所述客户端当前的IP地址;和
读取所述客户端的设备唯一ID。
可选的,如果所述第一鉴权要素为所述目标房间的房间ID,所述哈希值计算单元包括:
房间号类型判断子单元,用于根据所述目标房间的房间ID判断出所述目标房间的房间号类别,其中,存在P个房间号类别与所述N个哈希函数之间的对应关系,P为大于1的整数;
第一判断子单元,用于根据所述P个房间号类别与所述N个哈希函数之间的对应关系,将所述目标房间的房间ID所属的房间号类别对应的哈希函数,判断为所述目标哈希函数。
可选的,如果所述第一鉴权要素为所述目标房间的房间ID,所述哈希值计算单元包括:
房间号奇偶性判断子单元,用于判断所述目标房间的房间ID的奇偶性;
第一实例化子单元,用于如果判断出所述目标房间的房间ID为偶数,基于MD5类实例化所述多态哈希函数接口;
第二实例化子单元,用于如果判断出所述目标房间的房间ID为奇数,基于CRC32类实例化所述多态哈希函数接口。
可选的,如果所述第二鉴权要素为所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌,所述第二确定单元204,包括:
令牌类别获取子单元,用于判断出本次登陆所述直播平台时从所述视频流服务器所获取令牌的令牌类别,其中,存在Q个令牌类别与所述K个加密函数之间的对应关系,Q为大于1的整数;
第二判断子单元,用于根据所述Q个令牌类别与所述K个加密函数之间的对应关系,将本次登陆所述直播平台时从所述视频流服务器所获取令牌的令牌类别所匹配的加密函数,判断为目标加密函数。
可选的,如果所述第二鉴权要素为所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌,所述第二确定单元204,包括:
高位识别子单元,用于识别出所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌的最高位;
第三实例化子单元,用于如果所述令牌的最高位为0,基于AES类实例化所述多态加密函数接口,否则,基于TEA类实例化所述多态加密函数接口。
可选的,所述加密计算单元,具体用于:
将所述客户端本次登陆所述直播平台时从所述视频流服务器所获取令牌、所述客户端当前的系统时间、所述目标房间的房间ID、所述客户端当前的IP地址、以及所述客户端的设备唯一ID依次经过所述目标哈希函数处理,以得出各个鉴权要素对应的哈希值。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一实施方式所述的步骤。
第四方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一实施方式所述的步骤。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
设置了多态哈希函数接口和多态加密函数接口,调用与M个鉴权要素中第一鉴权要素匹配的目标哈希函数,以计算M个鉴权要素的哈希值;调用与M个鉴权要素中第二鉴权要素匹配的目标哈希函数,以基于视频流服务器下发的随机密钥对M个鉴权要素的哈希值加密,以得到给视频流服务器的视频流地址鉴权值。从而在不同鉴权要素下会使用不同的哈希函数来计算HASH值和使用不同的加密算法来进行对HASH值的加密。从而,在逆向静态分析其代码时,是无法确定多态的函数接口具体调用的函数。在逆向动态调试时,也会增加调试的复杂度。从而进一步加强了视频流鉴权值得安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的视频流地址鉴权方法的流程图;
图2为本发明实施例提供的视频流地址鉴权装置的结构示意图;
图3为本发明实施例提供的计算机可读存储介质的结构示意图;
图4为本发明实施例提供的计算机设备的结构示意图。
具体实施方式
本发明实施例通过提供一种视频流地址鉴权方法及装置,解决了现有视频流地址鉴权的安全性较低的技术问题。
为了解决上述技术问题,本发明实施例提供的技术方案,总体思路如下:
设置多态哈希函数接口和多态加密函数接口,在不同鉴权要素下会使用不同的哈希函数来计算HASH值和不同的加密算法来进行加密。从而,在逆向静态分析其代码时,是无法确定多态的函数接口具体调用的函数。在逆向动态调试时,也会增加调试的复杂度。从而进一步加强了视频流鉴权值得安全性。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本发明实施例提供的一种视频流地址鉴权方法,应用于直播平台的客户端。
参考图1所示,本实施例提供的视频流地址鉴权方法包括:
执行S101:如果接收到对直播平台上目标房间的直播视频观看指令,读取当前的M个鉴权要素,鉴权要素与客户端当前的状态或目标房间相关,M为正整数。
需要说明的是,在本实施例中,直播视频观看指令可以为观众对目标房间进行点击进入时产生的指令。
本实施例中,目标房间可以为直播平台上任一正在进行网络视频直播的房间,基于观众的点击进入操作确定。
具体的,在读取M个鉴权要素的步骤中,包括:读取客户端本次登陆直播平台时从视频流服务器所获取令牌(Token);和读取客户端当前的系统时间;和读取目标房间的房间ID(RoomId);和读取客户端当前的IP地址;和读取客户端的设备唯一ID。
读取的M个鉴权要素中,与客户端当前的状态相关的为:客户端当前的系统时间、客户端当前的IP地址、客户端的设备唯一ID、客户端本次登陆直播平台时从视频流服务器所获取令牌。与目标直播房间相关为目标直播房间的房间ID()
执行S102:通过多态哈希函数接口,从N个哈希函数中确定出与M个鉴权要素中第一鉴权要素匹配的目标哈希函数,N为大于1的整数。
在具体实施过程中,N个哈希(HASH)函数包括:MD5(Message Digest Algorithm5,信息-摘要算法第五版)和SHA-1(Secure Hash Algorithm 1,安全散列算法第一版)。CRC32(Cyclic Redundancy Check 32,循环冗余校验)中的任意两种或三种均有。还可以有其他更高版本或更低版本的哈希算法,或者与上述三种哈希算法均不相同的哈希算法。
在步骤S102的具体实施流程中,设置有多态哈希函数接口,从而依据每次第一鉴权要素的不同点而调用不同的哈希函数为目标哈希函数。具体实现如下:
该多态哈希函数接口表示如下:
其中,定义有哈希函数的基类,哈希函数的基类中定义了一个抽象接口CalcHashData。然后定义具体不同的哈希函数类来实现这个抽象接口CalcHashData,从而实现多态哈希函数接口的多态性。
具体的,第一鉴权要素可以为目标房间的房间ID。第一鉴权要素也可以为其他与目标房间或客户端相关的标识信息,比如,客户端当前的IP地址、客户端的设备唯一ID,客户端本次登陆直播平台时从视频流服务器所获取令牌。
下面,给出以第一鉴权要素为目标房间的房间ID为例的实施例,从而依据所进入房间的房间ID的不同来创建不同的哈希算法实例,避免使用单一计算HASH值的算法,从而提高其分析的难度。
在本实施例中,S102包括如下步骤:S1021~S1022。
S1021、根据目标房间的房间ID判断出目标房间的房间号类别,其中,客户端中存在P个房间号类别与N个哈希函数之间的对应关系,P为大于1的整数。
在本实施例中,P个房间号类别与N个哈希函数之间的对应关系,可以为一一对应关系,也可以为多对一的对应关系:即多种房间号类别对应一个哈希函数。
在一具体实施方式中,设置有2个房间号类别:偶数房间号与奇数房间号,对应两个哈希函数。比如:偶数房间号对应一种哈希函数,奇数房间号对应另一种哈希函数。
在一具体实施方式中,设置有10个房间号类别,以房间号末尾为区别:末位为“0,1,2,3,4”的房间号对应一种哈希函数,末尾为“5,6,7,8,9”的房间号对应另一种哈希函数。
S1022、根据P个房间号类别与N个哈希函数之间的对应关系,将目标房间的房间ID所属的房间号类别对应的哈希函数,判断为目标哈希函数。
在一实施例中,S102具体为:判断目标房间的房间ID的奇偶性;如果判断出目标房间的房间ID为偶数,将MD5函数判断为目标哈希函数,基于MD5类实例化多态哈希函数接口;如果判断出目标房间的房间ID为奇数,将CRC32函数判断为目标哈希函数,基于CRC32类实例化多态哈希函数接口。
针对如上设置有2个房间号类别:偶数房间号与奇数房间号,本实施例给出S102的一种具体实施方式为:当Roomid%2==0,即表征房间ID(Roomid)为偶数,则IHash*pHashFunc=new MD5,使用MD5类来实例化多态哈希函数接口,使得后续会调用MD5函数来计算各个鉴权要素的HASH值。当Roomid%2==1,即是Roomid为奇数时,则IHash*pHashFunc=new CRC32;使用CRC32类来实例化多态哈希函数接口,使得后续计算会调用CRC32函数来计算HASH值。
S103、调用目标哈希函数,以计算出与M个鉴权要素对应的HASH值。
在S103中,通过哈希值计算接口来提供对传入的M个鉴权要素进行HASH值的计算方法,具体实现如下:
传入的参数char*pData是具体要计算HASH值的鉴权要素,传入的参数IHash*pHashFunc是传入的哈希函数的基类的指针,指向S102中确定的目标哈希函数,而不是只实现一种哈希函数来对传入的数据计算Hash值。从而,在本步骤中具体调用的哈希函数是不确定,只有程序运行时,通过传入的指针才能具体知道是调用的哪一个哈希函数,从而实现了将视频流地址的鉴权过程的哈希值计算拆分成多个虚函数去实现。
例如,如果pHashFunc是类Md5的对象,则具体调用Md5函数,而如果pHashFunc是类Crc32的对象,则调用的则Crc32函数。因此,其在逆向静态分析其代码时,是无法确定哈希值计算接口CalcHash中pHashFunc->CalcHashData调用的具体函数。同时,即使是在逆向动态调试时,也会由于具体的pHashFunc所属对象的不同而调用的具体函数是不同的,增加了调试的复杂度。
具体的,如果S102中确定的目标哈希函数为MD5函数,则使用MD5函数来实现此多态哈希函数接口,通过MD5函数计算出Hash值,实现方法如下:
其中,MD5函数来实现此多态哈希函数接口中,定义了一个Md5类继承于基类IHash,并实现抽象接口CalcHashData,具体实现则是使用MD5函数来对M个鉴权要素进行计算出HASH值,pData为需要加密的数据指针。
如果S102中确定的目标哈希函数为CRC32函数,则使用CRC32函数来实现多态哈希函数接口,通过CRC32函数计算出Hash值,实现方法如下:
其中,CRC32函数来实现多态哈希函数接口中,定义了一个Crc32类继承于基类IHash,并实现抽象接口CalcHashData,具体实现则是使用Crc32函数计算出M个鉴权要素的HASH值,pData为需要计算哈希值的数据。
同样,还可以确定出目标哈希函数为SHA-1等其他的哈希函数,基于哈希函数接口的多态性,实现了计算的HASH值很难被逆向调试分析,为了说明书的简洁,此处不再对其他的哈希函数如SHA-1如何实现多台哈希函数进行一一举例。
S104、通过多态加密函数接口,从K个加密函数中确定出与M个鉴权要素中第二鉴权要素匹配的目标加密函数,K为大于1的整数。
在步骤S104的具体实施流程中,设置有多态加密函数接口,从而依据每次第二鉴权要素的不同点而调用不同的加密函数。
该多态加密函数接口表示如下:
其中,该多态加密函数接口中定义有一个加密函数的基类,该基类中定义了一个抽象接口EncodeData。定义不同的加密函数类来实现这个抽象接口EncodeData。
具体的,第二鉴权要素可以为客户端本次登陆直播平台时,从视频流服务器所获取令牌。第二鉴权要素也可以为其他与目标房间或客户端相关的标识信息,比如,客户端当前的IP地址、客户端的设备唯一ID,目标房间的房间ID。
下面,给出以第二鉴权要素为从视频流服务器所获取令牌为例的实施例,从而依据所获取令牌不同来创建不同的加密算法实例,避免使用单一的加密函数,从而提高其分析的难度。
在本实施例中,S104包括如下步骤:S1041~S1042:
S1041、判断出客户端登陆直播视频所在的直播平台的令牌类别,其中,客户端中存在Q个令牌类别与K个加密函数之间的对应关系。
在本实施例中,Q个令牌类别与N个Q个加密函数之间的对应关系,具体可以为一一对应关系,也可以为多对一的对应关系:即多种房间号对应一个加密函数。
在一举例的实施方式中,设置有2个令牌类别:最高位为不为0与最高位为为0,对应两个加密函数:Token最高位为不为0的令牌对应一种加密函数,Token最高位为0对应另一种加密函数。
S1042、根据Q个令牌类别与K个加密函数之间的对应关系,将令牌类别所匹配的加密函数,判断为目标加密函数。
在一实施例中,S104具体为:识别出客户端登陆直播平台时,从视频流服务器所获取令牌的最高位;如果令牌的最高位为0,基于AES类实例化多态加密函数接口,否则,基于TEA类实例化多态加密函数接口。
具体的,当Token的最高位为0时,IEncode*pEncodeFunc=new AES,表示使用AES类实例化多态加密函数接口,使得后续调用AES函数来执行加密;而相反的,如果Token的最高位为不为0,则IEncode*pEncodeFunc=new TEA,表示使用TEA类实例化加密函数接口,使得后续调用TEA函数来执行加密。
S105、调用目标加密函数,基于视频流服务器下发的随机密钥对HASH值加密,以得到视频流地址鉴权值。
在S105中,会调用到加密计算接口(EncodeData)来对S103计算出的哈希值进行加密。那么编写加密计算接口以对外提供加密计算的方法,具体实现如下:
其中,EncodeData接口来提供对传入的哈希值进行加密,其中,传入的参数char*pData为要加密的哈希值。
其中,传入的参数IEncode*pEncodeFunc是传入的加密算法的基类的指针,在此函数中具体调用的pEncodeFunc->EncodeData是不确定具体会调用到哪一个加密函数的代码,只有程序运行时,通过pEncodeFunc是哪一个加密类的指针才能具体知道是调用的哪一个加密函数,从而实现了将加密计算拆分成多个虚函数去实现。
具体来讲,如果pEncodeFunc是AES类的对象,那么pEncodeFunc->EncodeData调用的是类AES中的加密函数:AES函数,而如果pEncodeFunc是类TEA的对象,则pEncodeFunc->EncodeData调用是类TEA中的加密函数:TEA函数。因此,在逆向静态分析其代码时,是无法确定接口EncodeData中pEncodeFunc->EncodeData调用的具体加密函数。同时,即使是在逆向动态调试时,也会由于具体的pEncodeFunc所属对象的不同而调用的具体加密函数是不同的,增加了调试的复杂度。
具体的,如果S105中确定的目标加密函数为AES函数,在基于AES类实例化多态加密函数接口之后,在S105中调用AES函数来实现此多态加密函数接口,从而调用该AES函数对S103计算出的哈希值进行加密,实现方法如下:
其中,AES函数来实现此多态加密函数接口中,定义了一个AES类继承于加密函数的基类IEncode,并实现抽象接口EncodeData,具体实现则是使用AES函数来对S102计算出的哈希值加密,pData为需要加密的数据。
同样的方式还可以实现DES等其他加密函数,在此不进行一一举例说明。
需要说明的是,随机密钥是视频流服务器下发的用于加密客户端需要向视频流服务上报的数据的随机数。
S106、向视频流服务器发送携带有视频流地址鉴权值和M个鉴权要素的视频流地址请求,视频流地址请求用于从视频流服务器请求目标房间的直播视频的视频流地址。
将数据计算结果(视频流地址鉴权值)和M个鉴权要素携带在请求中并上报到视频流服务器,视频流服务器也会基于上报的M个鉴权要素,基于与客户端中相同的技术手段计算服务器侧的视频流地址鉴权值。视频流服务器将自身计算的视频流地址鉴权值与客户端上报的视频流地址鉴权值进行比较,如果比较结果为不一致,则表明该客户端是一个伪造的客户端,则拒绝该客户端的请求,如果比较结果为一致,则客户端接收到视频流服务器下发的视频流地址,使客户端基于视频流地址播放目标房间的视频直播。
基于同一发明构思,本发明实施例提供了一种视频流地址鉴权装置,应用于直播平台对应的客户端,参考图2所示,所述视频流地址鉴权装置包括:
读取单元201,用于如果接收到对所述直播平台上的目标房间的直播视频观看指令,读取M个鉴权要素,所述鉴权要素与所述客户端当前的状态或所述目标房间相关,M为正整数;
第一确定单元202,用于通过多态哈希函数接口,从N个哈希函数中确定出与所述M个鉴权要素中第一鉴权要素匹配的目标哈希函数,N为大于1的整数;
哈希值计算单元203,用于调用所述目标哈希函数,以计算出与所述M个鉴权要素对应的哈希值;
第二确定单元204,用于通过多态加密函数接口,从K个加密函数中确定出与所述M个鉴权要素中第二鉴权要素匹配的目标加密函数,K为大于1的整数;
加密计算单元205,用于调用所述目标加密函数,以基于视频流服务器下发的随机密钥对所述哈希值加密,以得到视频流地址鉴权值;
请求发送单元206,用于向所述视频流服务器发送携带有所述视频流地址鉴权值和所述M个鉴权要素的视频流地址请求,所述视频流地址请求用于从所述视频流服务器请求所述目标房间的直播视频的视频流地址。
可选的,所述读取单元201,具体用于:
读取所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌;和;
读取所述客户端当前的系统时间;和
读取所述目标房间的房间ID;和
读取所述客户端当前的IP地址;和
读取所述客户端的设备唯一ID。
可选的,如果所述第一鉴权要素为所述目标房间的房间ID,所述哈希值计算单元203包括:
房间号类型判断子单元,用于根据所述目标房间的房间ID判断出所述目标房间的房间号类别,其中,存在P个房间号类别与所述N个哈希函数之间的对应关系,P为大于1的整数;
第一判断子单元,用于根据所述P个房间号类别与所述N个哈希函数之间的对应关系,将所述目标房间的房间ID所属的房间号类别对应的哈希函数,判断为所述目标哈希函数。
可选的,如果所述第一鉴权要素为所述目标房间的房间ID,所述哈希值计算单元203包括:
房间号奇偶性判断子单元,用于判断所述目标房间的房间ID的奇偶性;
第一实例化子单元,用于如果判断出所述目标房间的房间ID为偶数,基于MD5类实例化所述多态哈希函数接口;
第二实例化子单元,用于如果判断出所述目标房间的房间ID为奇数,基于CRC32类实例化所述多态哈希函数接口。
可选的,如果所述第二鉴权要素为所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌,所述第二确定单元204,包括:
令牌类别获取子单元,用于判断出本次登陆所述直播平台时从所述视频流服务器所获取令牌的令牌类别,其中,存在Q个令牌类别与所述K个加密函数之间的对应关系,Q为大于1的整数;
第二判断子单元,用于根据所述Q个令牌类别与所述K个加密函数之间的对应关系,将本次登陆所述直播平台时从所述视频流服务器所获取令牌的令牌类别所匹配的加密函数,判断为目标加密函数。
可选的,如果所述第二鉴权要素为所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌,所述第二确定单元204,包括:
高位识别子单元,用于识别出所述客户端本次登陆所述直播平台时,从所述视频流服务器所获取令牌的最高位;
第三实例化子单元,用于如果所述令牌的最高位为0,基于AES类实例化所述多态加密函数接口,否则,基于TEA类实例化所述多态加密函数接口。
可选的,所述加密计算单元205,具体用于:
将所述客户端本次登陆所述直播平台时从所述视频流服务器所获取令牌、所述客户端当前的系统时间、所述目标房间的房间ID、所述客户端当前的IP地址、以及所述客户端的设备唯一ID依次经过所述目标哈希函数处理,以得出各个鉴权要素对应的哈希值。
基于同一发明构思,本发明实施例提供了一种计算机可读存储介质301,参考图3所示,其上存储有计算机程序302,该程序302被处理器执行时实现前述视频流地址鉴权方法实施例中任一个实施例所述的步骤。
基于同一发明构思,本发明实施例提供了一种计算机设备400,参考图4所示,包括存储器410、处理器430及存储在存储器410上并可在处理器430上运行的计算机程序420,所述处理器430执行所述程序420时实现前述视频流地址鉴权方法实施例中任一个实施例所述的步骤。
由于上述所介绍的装置、存储介质及计算机设备为实施本发明实施例中视频流地址鉴权方法所采用,故而基于本发明实施例中所介绍的前述视频流地址鉴权方法,本领域所属技术人员能够了解装置、存储介质及计算机设备的具体实施方式以及其各种变化形式,所以在此对于装置、存储介质及计算机设备如何实现本发明实施例中的视频流地址鉴权方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中视频流地址鉴权方法所采用的装置、存储介质及计算机,都属于本发明所欲保护的范围。
上述实施例中的技术方案,至少具有如下的技术效果或优点:
设置了多态哈希函数接口和多态加密函数接口,调用与M个鉴权要素中第一鉴权要素匹配的目标哈希函数,以计算M个鉴权要素的哈希值;调用与M个鉴权要素中第二鉴权要素匹配的目标哈希函数,以基于视频流服务器下发的随机密钥对M个鉴权要素的哈希值加密,以得到给视频流服务器的视频流地址鉴权值。从而在不同鉴权要素下会使用不同的哈希函数来计算HASH值和使用不同的加密算法来进行对HASH值的加密。从而,在逆向静态分析其代码时,是无法确定多态的函数接口具体调用的函数。在逆向动态调试时,也会增加调试的复杂度。从而进一步加强了视频流鉴权值得安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。