1.一种基于TLS的视频流地址鉴权方法,其特征在于,包括以下步骤:将使用STL的MAP容器生成的数值作为全局变量,并将全局变量存储于线程局部存储中;
客户端使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,并将第一KEY值、全局变量和直播相关数据发送至服务器;
客户端将使用MD5算法生成第一KEY值的计算过程和客户端所在设备的型号发送至服务器;
服务器对接收的全局变量和直播相关数据使用MD5算法拼接生成第二KEY值,同时服务器对客户端发送的生成第一KEY值的计算过程和客户端所在设备的型号进行接收;
第二KEY值与第一KEY值进行比对,若相同,则发送视频流地址至客户端,若不同,则拒绝客户端对服务器的访问,将客户端所在设备的型号和生成第一KEY值的计算过程上传至后台分析数据库;
其中,所述全局变量包括多个数值,所述全局变量中数值的计算方式为:将客户端所在设备的ID和i求和,得到的值使用crc32算法进行计算,再次得到的值作为全局变量的数值,且i取值不同,得到的全局变量的数值不同,i的取值范围为0≤i<100,且i为整数;
其中,所述客户端使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,具体为:客户端使用MD5算法拼接全局变量中的一个数值和直播相关数据生成第一KEY值;将客户端请求观看直播间的房间号对100求余,得到的余数作为i的值,按照所述全局变量中数值的计算方式进行计算,得到的全局变量数值作为生成第一KEY值时所使用的全局变量的数值;
每个房间号对应一个全局变量的数值;生成第二KEY值时所使用的全局变量的数值和生成第一KEY值时所使用的全局变量的数值相同。
2.如权利要求1所述的一种基于TLS的视频流地址鉴权方法,其特征在于:所述直播相关数据包括客户端所在设备的ID、token值、客户端请求观看直播间的房间号和客户端的当前时间戳;
所述token值由客户端登录服务器时,服务器下发给客户端。
3.如权利要求2所述的一种基于TLS的视频流地址鉴权方法,其特征在于,对于全局变量在线程局部中的存储,具体过程为:调用windows系统中API接口的TlsAlloc函数进行TLS索引的分配,在windows系统中找到一空闲的索引,获得空闲索引后,将全局变量存储到线程局部中。
4.如权利要求2所述的一种基于TLS的视频流地址鉴权方法,其特征在于:所述客户端使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,具体的步骤为:客户端使用MD5算法拼接客户端所在设备的ID、token值、客户端请求观看直播间的房间号、客户端的当前时间戳和客户端当前请求观看的直播间对应的全局变量中的数值生成第一KEY值。
5.如权利要求2所述的一种基于TLS的视频流地址鉴权方法,其特征在于:所述第二KEY值与第一KEY值进行比对,当第二KEY值与第一KEY值不同时,将客户端所在设备的型号、直播相关数据中客户端请求观看直播间的房间号、以及生成第一KEY值的计算过程上传至后台分析数据库,后台分析数据库对客户端所在设备的型号和客户端请求观看直播间的房间号进行统计。
6.如权利要求1所述的一种基于TLS的视频流地址鉴权方法,其特征在于:使用两种不同数据通道传输客户端的数据至服务器,一种数据通道用于传输第一KEY值、全局变量和直播相关数据至服务器,另一种数据通道用于传输生成第一KEY值的计算过程和客户端所在设备的型号至服务器。
7.一种存储介质,其上存储有计算机程序,其特征在于,当所述存储介质为客户端时,所述计算机程序被处理器执行时实现以下步骤:将使用STL的MAP容器生成的数值作为全局变量;
将全局变量存储于线程局部存储中;
使用MD5算法拼接全局变量和直播相关数据生成第一KEY值;
将全局变量、直播相关数据和生成的第一KEY值发送至服务器,将使用MD5算法生成第一KEY值的计算过程和客户端所在设备的型号发送至服务器;
当所述存储介质为服务器时,所述计算机程序被处理器执行时实现以下步骤:接收客户端发送的全局变量、直播相关数据和第一KEY值,对客户端发送的生成第一KEY值的计算过程和客户端所在设备的型号进行接收;
对接收的全局变量和直播相关数据使用MD5算法拼接生成第二KEY值;
将第二KEY值与第一KEY值进行比对,若相同,则发送视频流地址至客户端,若不同,则拒绝客户端的访问,将客户端所在设备的型号和生成第一KEY值的计算过程上传至后台分析数据库;
其中,所述全局变量包括多个数值,所述全局变量中数值的计算方式为:将客户端所在设备的ID和i求和,得到的值使用crc32算法进行计算,再次得到的值作为全局变量的数值,且i取值不同,得到的全局变量的数值不同,i的取值范围为0≤i<100,且i为整数;
其中,使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,具体为:使用MD5算法拼接全局变量中的一个数值和直播相关数据生成第一KEY值;将客户端请求观看直播间的房间号对100求余,得到的余数作为i的值,按照所述全局变量中数值的计算方式进行计算,得到的全局变量数值作为生成第一KEY值时所使用的全局变量的数值;每个房间号对应一个全局变量的数值;生成第二KEY值时所使用的全局变量的数值和生成第一KEY值时所使用的全局变量的数值相同。
8.一种电子设备,其特征在于,包括客户端和服务器,所述客户端包括:生成单元,其用于使用STL的MAP容器生成数值,并将生成的数值作为全局变量;
存储单元,其用于将全局变量存储于线程局部存储中;
第一计算单元,其用于使用MD5算法拼接全局变量和直播相关数据生成第一KEY值;
发送单元,其用于将全局变量、直播相关数据和生成的第一KEY值发送至服务器,将使用MD5算法生成第一KEY值的计算过程和客户端所在设备的型号发送至服务器;
所述服务器包括:
接收单元,其用于接收客户端发送的全局变量、直播相关数据和第一KEY值,对客户端发送的生成第一KEY值的计算过程和客户端所在设备的型号进行接收;
第二计算单元,其用于对接收的全局变量和直播相关数据使用MD5算法拼接生成第二KEY值;
比对单元,其用于将第二KEY值与第一KEY值进行比对,若相同,则发送视频流地址至客户端,若不同,则拒绝客户端的访问,将客户端所在设备的型号和生成第一KEY值的计算过程上传至后台分析数据库;
其中,所述全局变量包括多个数值,所述全局变量中数值的计算方式为:将客户端所在设备的ID和i求和,得到的值使用crc32算法进行计算,再次得到的值作为全局变量的数值,且i取值不同,得到的全局变量的数值不同,i的取值范围为0≤i<100,且i为整数;
其中,使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,具体为:使用MD5算法拼接全局变量中的一个数值和直播相关数据生成第一KEY值;将客户端请求观看直播间的房间号对100求余,得到的余数作为i的值,按照所述全局变量中数值的计算方式进行计算,得到的全局变量数值作为生成第一KEY值时所使用的全局变量的数值;每个房间号对应一个全局变量的数值;生成第二KEY值时所使用的全局变量的数值和生成第一KEY值时所使用的全局变量的数值相同。
9.一种基于TLS的视频流地址鉴权系统,其特征在于,包括:生成模块,所述生成模块运行于客户端,所述生成模块用于将使用STL的MAP容器生成的数值作为全局变量,并将全局变量存储于线程局部存储中;
第一计算模块,所述第一计算模块运行于客户端,所述第一计算模块用于使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,并将第一KEY值、全局变量和直播相关数据发送至服务器,将使用MD5算法生成第一KEY值的计算过程和客户端所在设备的型号发送至服务器;
第二计算模块,所述第二计算模块运行于服务器,所述第二计算模块用于对接收的全局变量和直播相关数据使用MD5算法拼接生成第二KEY值,同时对客户端发送的生成第一KEY值的计算过程和客户端所在设备的型号进行接收;
比对模块,所述比对模块运行于服务器,所述比对模块用于将第二KEY值与第一KEY值进行比对,若相同,则发送视频流地址至客户端,若不同,则拒绝客户端对服务器的访问,将客户端所在设备的型号和生成第一KEY值的计算过程上传至后台分析数据库;
其中,所述全局变量包括多个数值,所述全局变量中数值的计算方式为:将客户端所在设备的ID和i求和,得到的值使用crc32算法进行计算,再次得到的值作为全局变量的数值,且i取值不同,得到的全局变量的数值不同,i的取值范围为0≤i<100,且i为整数;
其中,使用MD5算法拼接全局变量和直播相关数据生成第一KEY值,具体为:使用MD5算法拼接全局变量中的一个数值和直播相关数据生成第一KEY值;将客户端请求观看直播间的房间号对100求余,得到的余数作为i的值,按照所述全局变量中数值的计算方式进行计算,得到的全局变量数值作为生成第一KEY值时所使用的全局变量的数值;每个房间号对应一个全局变量的数值;生成第二KEY值时所使用的全局变量的数值和生成第一KEY值时所使用的全局变量的数值相同。