CN107801059B - 一种鉴权方法及服务器 - Google Patents

一种鉴权方法及服务器 Download PDF

Info

Publication number
CN107801059B
CN107801059B CN201710884349.XA CN201710884349A CN107801059B CN 107801059 B CN107801059 B CN 107801059B CN 201710884349 A CN201710884349 A CN 201710884349A CN 107801059 B CN107801059 B CN 107801059B
Authority
CN
China
Prior art keywords
client
block chain
server
calculates
auxiliary
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
Application number
CN201710884349.XA
Other languages
English (en)
Other versions
CN107801059A (zh
Inventor
周志刚
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710884349.XA priority Critical patent/CN107801059B/zh
Priority to PCT/CN2017/107088 priority patent/WO2019061599A1/zh
Publication of CN107801059A publication Critical patent/CN107801059A/zh
Application granted granted Critical
Publication of CN107801059B publication Critical patent/CN107801059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25816Management of client data involving client authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种鉴权方法及服务器。本发明实施例方法包括:服务器在接收到目标客户端发送的视频流地址请求时,下发用于对目标客户端鉴权的第一区块链;服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端;服务器指示目标客户端将第二区块链发送到目标辅助计算客户端,以使得目标辅助计算客户端对目标客户端进行校验;在目标客户端的校验结果为合法时,向目标客户端下发视频流地址。本发明实施例中利用区块链技术对发起视频流请求的客户端进行鉴权,避免了视频流盗播,同时利用服务器的辅助计算客户端集合中客户端对其他视频流请求的客户端进行校验,降低了服务器计算性能压力。

Description

一种鉴权方法及服务器
技术领域
本发明涉及视频播放技术领域,特别涉及一种鉴权方法及服务器。
背景技术
目前,视频直播是利用互联网及流媒体技术进行直播,然后视频内容的提供方存在视频流地址被第三方平台获取,从而可以不通过直播网站直接观看视频,即绕过了直播网站的视频播放器提供的视频播放,从而对于视频网站减少了网站的流量。
因此,需要有一种方法能够对客户端的请求流地址的接口进行鉴别,以阻止不是直播平台的客户端的视频流地址的请求,从而对视频流地址进行保护,防止盗取视频流,防止盗刷视频流量。
发明内容
本发明实施例提供了一种鉴权方法及服务器,以解决目前直播平台视频资源被盗取视频流的情况。
第一方面,本申请提供了一种鉴权方法,该方法包括:
服务器在接收到目标客户端发送的视频流地址请求时,下发用于对所述目标客户端鉴权的第一区块链,以使得所述目标客户端根据所述第一区块链生成第二区块链;
所述服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端,所述目标辅助计算客户端与所述目标客户端为不同的客户端;
所述服务器指示所述目标客户端将所述第二区块链发送到所述目标辅助计算客户端,以使得所述目标辅助计算客户端通过所述第二区块链对所述目标客户端进行校验,确定是否合法;
所述服务器接收所述目标辅助计算客户端对所述目标客户端的校验结果,在所述目标客户端的校验结果为合法时,向所述目标客户端下发视频流地址,在所述目标客户端的校验结果为非法时,拒绝向所述目标客户端下发视频流地址。
进一步的,在所述服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端之前,所述方法还包括:
所述服务器下发第三区块链到直播平台所有客户端,以使得所述直播平台上的各客户端收到所述第三区块链后生成第四区块链,并将所述第四区块链发送到所述服务器,所述第四区块链中包括客户端计算能力信息;
所述服务器根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端作为所述服务器的辅助计算客户端集合。
进一步的,所述客户端计算能力信息为客户端生成所述第四区块链消耗的处理器计算时间,所述服务器根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端,作为所述服务器的辅助计算客户端集合的步骤,包括:
所述服务器根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间低于预设时间阈值的预设数量的客户端,作为所述服务器的辅助计算客户端集合,
或者,所述服务器根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间最短的预设数量的客户端,作为所述服务器的辅助计算客户端集合。
进一步的,所述第二区块链中包括所述目标客户端的计算能力信息;所述方法还包括:
在确定所述目标客户端合法后,若所述目标客户端的计算能力到达预设要求,则将所述目标客户端加入所述服务器的辅助计算客户端集合。
进一步的,所述方法还包括:
在将所述目标客户端加入所述服务器的辅助计算客户端集合后,若检测到所述目标客户端离开直播平台,则在所述辅助计算客户端集合中删除所述目标客户端。
进一步的,所述第一区块链、所述第二区块链的数据结构相同;
所述数据结构包括区块链的块号、前一个区块链的哈希值、计算新区块链消耗的处理器计算时间、计算新区块链需要的key值、当前时间的时间戳、区块链功能数据及当前区块链哈希值,所述区块链功能数据包括当前客户端所在房间的房间号,所述客户端的用户标识以及所述客户端的标志。
第二方面,本申请提供一种服务器,该服务器包括:
第一发送模块,用于在接收到目标客户端发送的视频流地址请求时,下发用于对所述目标客户端鉴权的第一区块链,以使得所述目标客户端根据所述第一区块链生成第二区块链;
选择模块,用于在预先确定的辅助计算客户端集合中选择目标辅助计算客户端,所述目标辅助计算客户端与所述目标客户端为不同的客户端;
指示模块,用于指示所述目标客户端将所述第二区块链发送到所述目标辅助计算客户端,以使得所述目标辅助计算客户端通过所述第二区块链对所述目标客户端进行校验,确定是否合法;
接收模块,用于接收所述目标辅助计算客户端对所述目标客户端的校验结果;
第二发送模块,用于在所述目标客户端的校验结果为合法时,向所述目标客户端下发视频流地址,在所述目标客户端的校验结果为非法时,拒绝向所述目标客户端下发视频流地址。
进一步的,所述服务器还包括:
第三发送模块,用于在所述选择模块在预先确定的辅助计算客户端集合中选择目标辅助计算客户端之前,下发第三区块链到直播平台所有客户端,以使得所述直播平台上的各客户端收到所述第三区块链后生成第四区块链,并将所述第四区块链发送到所述服务器,所述第四区块链中包括客户端计算能力信息;
挑选模块,用于根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端作为所述服务器的辅助计算客户端集合。
进一步的,所述客户端计算能力信息为客户端生成所述第四区块链消耗的处理器计算时间,所述挑选模块具体用于:
根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间低于预设时间阈值的预设数量的客户端,作为所述服务器的辅助计算客户端集合,
或者,根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间最短的预设数量的客户端,作为所述服务器的辅助计算客户端集合。
进一步的,所述第二区块链中包括所述目标客户端的计算能力信息;所述服务器还包括:
添加模块,用于在确定所述目标客户端合法后,若所述目标客户端的计算能力到达预设要求,则将所述目标客户端加入所述服务器的辅助计算客户端集合。
进一步的,所述服务器还包括:
删除模块,用于在将所述目标客户端加入所述服务器的辅助计算客户端集合后,若检测到所述目标客户端离开直播平台,则在所述辅助计算客户端集合中删除所述目标客户端。
进一步的,所述第一区块链、所述第二区块链的数据结构相同;
所述数据结构包括区块链的块号、前一个区块链的哈希值、计算新区块链消耗的处理器计算时间、计算新区块链需要的key值、当前时间的时间戳、区块链功能数据及当前区块链哈希值,所述区块链功能数据包括当前客户端所在房间的房间号,所述客户端的用户标识以及所述客户端的标志。
第三方面,本发明还提供一种服务器,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现第一方面中任一所述的方法。
第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的方法。
本发明实施例中,服务器在接收到目标客户端发送的视频流地址请求时,下发用于对目标客户端鉴权的第一区块链,以使得目标客户端根据所述第一区块链生成第二区块链;服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端;服务器指示目标客户端将第二区块链发送到目标辅助计算客户端,以使得目标辅助计算客户端通过第二区块链对目标客户端进行校验,确定是否合法;服务器接收目标辅助计算客户端对目标客户端的校验结果,在目标客户端的校验结果为合法时,向目标客户端下发视频流地址。本发明实施例中利用区块链技术对发起视频流请求的客户端进行鉴权,以拒绝不合法的客户端视频流请求,避免了视频流盗播,同时,在直播平台客户端中挑选计算能力强的客户端组合成服务器的辅助计算群,辅助对其他视频流请求的客户端进行校验,降低了服务器计算性能压力。
附图说明
图1是本发明实施例中鉴权方法的一个实施例示意图;
图2是本发明实施例中鉴权方法的另一个实施例示意图;
图3是本发明实施例中服务器的一个实施例示意图;
图4是本发明实施例中服务器的另一个实施例示意图;
图5是本发明实施例中服务器的另一个实施例示意图;
图6是本发明实施例中服务器的另一个实施例示意图;
图7是本发明实施例中服务器的另一个实施例示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,本发明实施例中鉴权方法的一个实施例包括:
S101、服务器在接收到目标客户端发送的视频流地址请求时,下发用于对目标客户端鉴权的第一区块链,以使得目标客户端根据第一区块链生成第二区块链;
本实施例中,服务器即即直播平台对应的服务器,客户端可以是用户终端,例如手机、平板电脑等智能终端,房间为直播平台上主播建立的直播间,目标客户端为请求视频流地址的客户端。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
S102、服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端;
其中,该目标辅助计算客户端与该目标客户端为不同的客户端,该目标辅助计算客户端为该服务器选择的用于校验该目标客户端的辅助计算客户端,辅助计算客户端集合为登录直播平台(服务器),服务器预先确定的辅助该服务器对发起视频流地址请求的客户端进行校验的客户端集合。
S103、服务器指示目标客户端将第二区块链发送到目标辅助计算客户端,以使得目标辅助计算客户端通过第二区块链对目标客户端进行校验,确定是否合法;
具体的,服务器指示目标客户端将第二区块链发送到目标辅助计算客户可以是服务器发送指示信息到目标客户端,该指示信息中包括目标辅助计算客户端的信息,例如,目标辅助计算客户端的用户标识,网络地址等,使得目标客户端将第二区块链发送到目标辅助计算客户端,目标辅助计算客户端通过第二区块链对目标客户端进行校验,确定该目标客户端是否合法,目标辅助计算客户端在对目标客户端进行校验完成,发送对目标客户端的校验结果给服务器。
S104、服务器接收目标辅助计算客户端对目标客户端的校验结果,在目标客户端的校验结果为合法时,向目标客户端下发视频流地址,在目标客户端的校验结果为非法时,拒绝向目标客户端下发视频流地址。
具体的,服务器在接收到目标辅助计算客户端发送的目标客户端的校验结果时,若校验结果为合法时,则确定目标客户端为合法客户端,向目标客户端下发视频流地址,若校验结果为非法时,则确定目标客户端为非法客户端,拒绝向目标客户端下发视频流地址,避免了非法客户端盗播视频流。
本发明实施例中,服务器在接收到目标客户端发送的视频流地址请求时,下发用于对目标客户端鉴权的第一区块链,以使得目标客户端根据所述第一区块链生成第二区块链;服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端;服务器指示目标客户端将第二区块链发送到目标辅助计算客户端,以使得目标辅助计算客户端通过第二区块链对目标客户端进行校验,确定是否合法;服务器接收目标辅助计算客户端对目标客户端的校验结果,在目标客户端的校验结果为合法时,向目标客户端下发视频流地址。本发明实施例中利用区块链技术对发起视频流请求的客户端进行鉴权,以拒绝不合法的客户端视频流请求,避免了视频流盗播,同时,在直播平台客户端中挑选计算能力强的客户端组合成服务器的辅助计算群,辅助对其他视频流请求的客户端进行校验,降低了服务器计算性能压力。
优选的,本发明实施例中,服务器在确定当前为观看直播的高峰(可以根据同时在线客户端数量确定,达到预设数量即为观看高峰)时,服务器才在预先确定的辅助计算客户端集合中选择目标辅助计算客户端。在非观看直播的高峰,服务器可以自身直接对发送视频流地址请求的客户端进行校验,在客户端的校验结果为合法时,向客户端下发视频流地址,在客户端的校验结果为非法时,拒绝向客户端下发视频流地址。
如图2所示,在上述步骤S102之前,本发明实施例方法还可以进一步包括:
S105、服务器下发第三区块链到直播平台所有客户端,以使得直播平台上的各客户端收到第三区块链后生成第四区块链,并将第四区块链发送到服务器;
其中,该第四区块链中包括客户端计算能力信息,其中第三区块链与上述第一区块链可以相同也可以不同,优选的,第三区块链与上述第一区块链不同,由于服务器下发第三区块链是为了计算直播平台各客户端计算能力的,因此第三区块链的大小可以小于第一区块链,以节约客户端的计算资源。
S106、服务器根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端作为服务器的辅助计算客户端集合。
具体的,达到预设要求可以是达到预设客户端计算能力(下文详述),预设数量可以是预先设定的,例如5个,10个等。
本实施例中,通过预先确定好服务器的辅助计算客户端集合,在服务器需要时(例如观看直播高峰时),即可利用辅助计算客户端集合中的客户端完成服务器的一些工作,例如本发明实施例中的对发送视频流地址请求的客户端进行校验,可以降低服务器计算压力。
进一步的,所述客户端计算能力信息为客户端生成所述第四区块链消耗的处理器计算时间,上述步骤S106,具体可以包括:
服务器根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间低于预设时间阈值的预设数量的客户端,作为所述服务器的辅助计算客户端集合,
或者,服务器根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间最短的预设数量的客户端,作为所述服务器的辅助计算客户端集合。
进一步的,在本发明一些实施例中,所述第二区块链中包括所述目标客户端的计算能力信息;本发明实施例中方法还包括:在确定目标客户端合法后,若目标客户端的计算能力到达预设要求,则将目标客户端加入服务器的辅助计算客户端集合。
本实施例中,服务器根据第二区块链中目标客户端的计算能力信息可以确定目标客户端的计算能力,若目标客户端的计算能力到达预设要求,则将目标客户端加入服务器的辅助计算客户端集合,以便后续可以分配任务给目标客户端进行。可以理解的是,对于其他新加入直播平台服务器的客户端,服务器也可以下发上述第三区块链,使得该新加入的客户端根据第三区块链生成第四区块链,该第四区块链中包括新加入的客户端的计算能力信息,这样服务器可以确定新加入的客户端的能力,在满足要求时,可以将新加入的客户端加入所述服务器的辅助计算客户端集合。
在本发明另一些实施例中,本发明实施例中方法还可以进一步包括:
在将目标客户端加入所述服务器的辅助计算客户端集合后,若检测到所述目标客户端离开直播平台,则在辅助计算客户端集合中删除目标客户端。
这样在服务器的辅助计算客户端集合可以及时的删除退出直播平台的无效客户端,避免无效服务器的无效任务分配。
本发明实施例中,所述第一区块链、所述第二区块链、第三区块链、第四区块链的数据结构相同;所述数据结构包括区块链的块号、前一个区块链的哈希值、计算新区块链消耗的处理器计算时间、计算新区块链需要的key值、当前时间的时间戳、区块链功能数据及当前区块链哈希值,所述区块链功能数据包括当前客户端所在房间的房间号,所述客户端的用户标识以及所述客户端的标志。本发明实施例中,上述数据结构具体实现如下:
Struct BlockData{
Int64index;
String previousHash;
Int64timestamp;
String key;
Int64timeelaps;
String data;
String hash;
}
其中,index用来表示区块链的块号,通常从0开始递增;previousHash表示前一个区块链的HASH值;imestamp表示时间戳;key表示计算新区块需要的key值;timeelaps表示计算新的区块所消耗的处理器计算时间;data则表示一些数据的拼接(即上述区块链功能数据),这个data字段的内容则是依据区块链所需要完成的功能所设计,针对于本发明实施例,data可以包括当前客户端所在房间的房间号,客户端的用户标识、客户端的标志及当前时间戳以前加密后的值;hash表示当前这个区块链的内容的hash值。有了这个区块链的设计后,则可以对新产生的区块链里面的数据进行校验。
本发明实施例中,第一区块链可以是服务器生成的初始区块链,当第一区块链为初始区块链时,初始区块链由于是第一个生成的区块链,初始区块链的区块号为0,时间戳则为当前时间,上一个区块链的hash值为0。
本发明实施例中同时设计了区块链中新区块链生成的算法,首先初始的区块链(如第一区块链)是服务器生成的,服务器会下发到每个发起视频流地址请求的客户端,那么该客户端收到初始区块链后,需要算法来生成下一个区块链。具体实现如下:首先已经获取到了上一个区块链的数据结构,下一个区块链则是依据上一个区块链的数据进行生成。
本发明实施例中,假设上一个区块链的名字是prevblock,新生成的区块链的名字是newblock,具体生成新的区块链的过程如下:
(1)计算新的区块链的区块号。
Newblock.index=prevblock.index+1;
则新的区块链的块号是当前块号加1。
(2)计算新的区块链的时间戳。
Newblock.timestamp=time();
新区块链的时间戳则是获取当前的时间。
(3)计算新的区块链的上一个区块链的hash值。
Newblock.previousHash=prevblock.hash;
新区块链的上一个区块链的hash值则是获取的上一个区块链的hash。
(4)计算新的区块链的上一个区块链的key值。
Newblock.key=prevblock.key;
新区块链的上一个区块链的key值则是获取的上一个区块链的key值。
(5)计算新的区块链的数据。
Newblock.data=AES.encrypt(Newblock.roomid+Newblock.uid+Newblock.token+Newblock.timestamp,Newblock.key);
新区块链的data数据则是由当前客户端登陆时获取的客户端标志(token),客户端的用户标识(uid),以及当前请求观看视频直播的房间号,以及当前的时间戳,然后一起使用加密算法AES来对数据进行进一步的加密,其中使用的key值则是服务器下发的key值。当然加密算法也可以使用更为复杂的加密算法,此处不限定AES加密算法。
(6)计算新的区块链的hash值。
Newblock.hash=HASH(index+previousHash+timestamp+data+key);
新区块链的hash值则是有新区块链的index字段和previousHash字段和timestamp字段和data字段和key字段。
本发明实施例中,哈希值对应的哈希(HASH)算法统一,该HASH算法可以是SHA-256算法,当然也可以是其他HASH算法,例如SHA-1等,此处不作限定。
(7)计算新的区块链的timeelaps值。
在计算新的区块链之前会先获取下当前的时间,计算新的区块链完成后会再次获取当前时间,该2个时间差值则表明计算新的区块链的消耗的处理器计算时间,具体如下:
Newblock.timeelaps=timeEnd()-timeStart();
其中timeEnd则是计算完成后获取的时间,timeStart则是计算开始时的时间,2个差值则是新区块消耗的处理器计算时间。
至此,通过上述步骤就实现了通过一个区块链生成一个新的区块链的算法。而本发明实施例中,客户端通过接收第一区块链生成第二区块链时,即采用上述步骤实现。
本发明实施例中,目标辅助计算客户端通过第二区块链对目标客户端进行校验,确定是否合法的步骤具体可以包括:假设上一个区块链(第一区块链)的名字是prevblock,然后收到了一个新生成的区块链(第二区块链)的名字是newblock。
(1)首先判断其index是否正确。
Newblock.index!=prevblock.index+1;
如果新的区块链的区块号不是上一个区块的区块号加1,则说明新的区块链不合法,直接返回区块链错误信息。
(2)然后判断区块链的hash值。
Newblock.previousHash!=prevblock.hash
如果新的区块链的上一个区块链的hash值不等于上一个区块链的hash值则认为新的区块链不合法,直接返回区块链错误信息。
(3)判断新的区块链的hash值。
新的区块链的hash值是新区块链的整个数据的hash结果。
HASH(Newblock.index+Newblock.previousHash+Newblock.timestamp+Newblock.data)!=Newblock.hash;
如果新的区块链的整个区块链的数据的hash值不等于新的区块链hash值,则认为新的区块链不合法,直接返回区块链错误信息,确定目标客户端不合法。
(4)判断新的区块链的data值。
新的区块链的data值是通过加密算法将数据进行加密的。在此则会解密数据来判断数据的合法性。
Newblock.data=AES.decrypt(Newblock.data,Newblock.key);
此时将data字段进行解密后从而得到原始的data数据,从data中则可以得知其uid,token,房间号,时间戳,此时目标辅助计算客户端则会校验此目标客户端的uid是不是一个合法的uid,token是否是服务器下发的token,房间号是否是合法的房间号,如果校验合法,则目标辅助计算客户端会上报校验结果给服务器,服务器才会将该房间号对应的视频流地址下发到目标客户端。
下面介绍本发明实施例中服务器的实施例。
请参阅图3,为本发明实施例中服务器的一个实施例示意图,该服务器包括:
第一发送模块301,用于在接收到目标客户端发送的视频流地址请求时,下发用于对所述目标客户端鉴权的第一区块链,以使得所述目标客户端根据所述第一区块链生成第二区块链;
选择模块302,用于在预先确定的辅助计算客户端集合中选择目标辅助计算客户端,所述目标辅助计算客户端与所述目标客户端为不同的客户端;
指示模块303,用于指示所述目标客户端将所述第二区块链发送到所述目标辅助计算客户端,以使得所述目标辅助计算客户端通过所述第二区块链对所述目标客户端进行校验,确定是否合法;
接收模块304,用于接收所述目标辅助计算客户端对所述目标客户端的校验结果;
第二发送模块305,用于在所述目标客户端的校验结果为合法时,向所述目标客户端下发视频流地址,在所述目标客户端的校验结果为非法时,拒绝向所述目标客户端下发视频流地址。
进一步的,如图4所示,所述服务器还包括:
第三发送模块306,用于在所述选择模块在预先确定的辅助计算客户端集合中选择目标辅助计算客户端之前,下发第三区块链到直播平台所有客户端,以使得所述直播平台上的各客户端收到所述第三区块链后生成第四区块链,并将所述第四区块链发送到所述服务器,所述第四区块链中包括客户端计算能力信息;
挑选模块307,用于根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端作为所述服务器的辅助计算客户端集合。
进一步的,所述客户端计算能力信息为客户端生成所述第四区块链消耗的处理器计算时间,所述挑选模块307具体用于:
根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间低于预设时间阈值的预设数量的客户端,作为所述服务器的辅助计算客户端集合,
或者,根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间最短的预设数量的客户端,作为所述服务器的辅助计算客户端集合。
进一步的,如图5所示,所述第二区块链中包括所述目标客户端的计算能力信息;所述服务器还包括:
添加模块308,用于在确定所述目标客户端合法后,若所述目标客户端的计算能力到达预设要求,则将所述目标客户端加入所述服务器的辅助计算客户端集合。
进一步的,如图6所示,所述服务器还包括:
删除模块309,用于在将所述目标客户端加入所述服务器的辅助计算客户端集合后,若检测到所述目标客户端离开直播平台,则在所述辅助计算客户端集合中删除所述目标客户端。
进一步的,所述第一区块链、所述第二区块链的数据结构相同;
所述数据结构包括区块链的块号、前一个区块链的哈希值、计算新区块链消耗的处理器计算时间、计算新区块链需要的key值、当前时间的时间戳、区块链功能数据及当前区块链哈希值,所述区块链功能数据包括当前客户端所在房间的房间号,所述客户端的用户标识以及所述客户端的标志。
本发明实施例中还提供一种服务器,请参见图7,所述服务器包括:
存储器701,处理器702及存储在所述存储器上并可在所述处理器上运行的计算机程序703,其中,所述处理器702执行所述计算机程序703时可以实现上述鉴权方法。
为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。存储器701可用于存储计算机程序703,上述计算机程序包括软件程序、模块和数据,处理器702通过运行执行存储在存储器701的计算机程序703,从而执行服务器的各种功能应用以及数据处理。
在具体的实施过程中,存储器701可用于存储软件程序以及模块,处理器702通过运行存储在存储器701的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。存储器701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如游戏类应用程序、聊天类应用程序)等;存储数据区可存储根据服务器的使用所创建的数据(游戏配置数据、音频数据)等。此外,存储器701可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器702是服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器701内的软件程序和/或模块,以及调用存储在存储器701内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器702可包括一个或多个处理单元;优选的,处理器702可集成应用处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等。
本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的鉴权方法的部分或全部步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种鉴权方法,其特征在于,所述方法包括:
服务器在接收到目标客户端发送的视频流地址请求时,下发用于对所述目标客户端鉴权的第一区块链,以使得所述目标客户端根据所述第一区块链生成第二区块链;
所述服务器在预先确定的辅助计算客户端集合中,选择目标辅助计算客户端,所述目标辅助计算客户端与所述目标客户端为不同的客户端;
所述服务器指示所述目标客户端将所述第二区块链发送到所述目标辅助计算客户端,以使得所述目标辅助计算客户端通过所述第二区块链对所述目标客户端进行校验,确定是否合法;
所述服务器接收所述目标辅助计算客户端对所述目标客户端的校验结果,在所述目标客户端的校验结果为合法时,向所述目标客户端下发视频流地址,在所述目标客户端的校验结果为非法时,拒绝向所述目标客户端下发视频流地址。
2.根据权利要求1所述的方法,其特征在于,在所述服务器在预先确定的辅助计算客户端集合中选择目标辅助计算客户端之前,所述方法还包括:
所述服务器下发第三区块链到直播平台所有客户端,以使得所述直播平台上的各客户端收到所述第三区块链后生成第四区块链,并将所述第四区块链发送到所述服务器,所述第四区块链中包括客户端计算能力信息;
所述服务器根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端作为所述服务器的辅助计算客户端集合。
3.根据权利要求2所述的方法,其特征在于,所述客户端计算能力信息为客户端生成所述第四区块链消耗的处理器计算时间,所述服务器根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端,作为所述服务器的辅助计算客户端集合的步骤,包括:
所述服务器根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间低于预设时间阈值的预设数量的客户端,作为所述服务器的辅助计算客户端集合,
或者,所述服务器根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间最短的预设数量的客户端,作为所述服务器的辅助计算客户端集合。
4.根据权利要求1所述的方法,其特征在于,所述第二区块链中包括所述目标客户端的计算能力信息;所述方法还包括:
在确定所述目标客户端合法后,若所述目标客户端的计算能力到达预设要求,则将所述目标客户端加入所述服务器的辅助计算客户端集合。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在将所述目标客户端加入所述服务器的辅助计算客户端集合后,若检测到所述目标客户端离开直播平台,则在所述辅助计算客户端集合中删除所述目标客户端。
6.根据权利要求1所述的方法,其特征在于,所述第一区块链、所述第二区块链的数据结构相同;
所述数据结构包括区块链的块号、前一个区块链的哈希值、计算新区块链消耗的处理器计算时间、计算新区块链需要的key值、当前时间的时间戳、区块链功能数据及当前区块链哈希值,所述区块链功能数据包括所述目标客户端所在房间的房间号,所述目标客户端的用户标识以及所述目标客户端的标志。
7.一种服务器,其特征在于,所述服务器包括:
第一发送模块,用于在接收到目标客户端发送的视频流地址请求时,下发用于对所述目标客户端鉴权的第一区块链,以使得所述目标客户端根据所述第一区块链生成第二区块链;
选择模块,用于在预先确定的辅助计算客户端集合中选择目标辅助计算客户端,所述目标辅助计算客户端与所述目标客户端为不同的客户端;
指示模块,用于指示所述目标客户端将所述第二区块链发送到所述目标辅助计算客户端,以使得所述目标辅助计算客户端通过所述第二区块链对所述目标客户端进行校验,确定是否合法;
接收模块,用于接收所述目标辅助计算客户端对所述目标客户端的校验结果;
第二发送模块,用于在所述目标客户端的校验结果为合法时,向所述目标客户端下发视频流地址,在所述目标客户端的校验结果为非法时,拒绝向所述目标客户端下发视频流地址。
8.根据权利要求7所述的服务器,其特征在于,所述服务器还包括:
第三发送模块,用于在所述选择模块在预先确定的辅助计算客户端集合中选择目标辅助计算客户端之前,下发第三区块链到直播平台所有客户端,以使得所述直播平台上的各客户端收到所述第三区块链后生成第四区块链,并将所述第四区块链发送到所述服务器,所述第四区块链中包括客户端计算能力信息;
挑选模块,用于根据接收到的客户端计算能力信息,挑选计算能力达到预设要求的预设数量的客户端作为所述服务器的辅助计算客户端集合。
9.根据权利要求8所述的服务器,其特征在于,所述客户端计算能力信息为客户端生成所述第四区块链消耗的处理器计算时间,所述挑选模块具体用于:
根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间低于预设时间阈值的预设数量的客户端,作为所述服务器的辅助计算客户端集合,
或者,根据接收到的各客户端生成所述第四区块链消耗的处理器计算时间,挑选处理器计算时间最短的预设数量的客户端,作为所述服务器的辅助计算客户端集合。
10.一种服务器,其特征在于,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现权利要求1至6任一所述的方法。
CN201710884349.XA 2017-09-26 2017-09-26 一种鉴权方法及服务器 Active CN107801059B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710884349.XA CN107801059B (zh) 2017-09-26 2017-09-26 一种鉴权方法及服务器
PCT/CN2017/107088 WO2019061599A1 (zh) 2017-09-26 2017-10-20 一种鉴权方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710884349.XA CN107801059B (zh) 2017-09-26 2017-09-26 一种鉴权方法及服务器

Publications (2)

Publication Number Publication Date
CN107801059A CN107801059A (zh) 2018-03-13
CN107801059B true CN107801059B (zh) 2018-09-04

Family

ID=61532442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710884349.XA Active CN107801059B (zh) 2017-09-26 2017-09-26 一种鉴权方法及服务器

Country Status (2)

Country Link
CN (1) CN107801059B (zh)
WO (1) WO2019061599A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108521590B (zh) * 2018-04-10 2022-08-26 北京息通网络技术有限公司 一种防止虚假视频数据中继的方法与系统
US11019059B2 (en) * 2018-04-26 2021-05-25 Radware, Ltd Blockchain-based admission processes for protected entities
CN109040783A (zh) * 2018-09-11 2018-12-18 北京朗达和顺科技有限公司 一种视频防伪系统、方法及装置
CN109361661B (zh) * 2018-10-08 2020-07-10 莆田市烛火信息技术有限公司 一种依附相关链算力的区块链的共识装置
US10972777B2 (en) 2018-10-24 2021-04-06 At&T Intellectual Property I, L.P. Method and apparatus for authenticating media based on tokens
TWI689194B (zh) * 2019-01-22 2020-03-21 開曼群島商現代財富控股有限公司 基於無分派者秘密共享的門檻式簽章系統及其方法
CN111355980B (zh) * 2020-04-16 2022-05-03 中奥科技发展(深圳)有限公司 用于数字化视频产品的版权归属处理方法及系统
CN113938702A (zh) * 2020-07-13 2022-01-14 富泰华工业(深圳)有限公司 基于区块链系统的多媒体数据流防篡改装置、方法及介质
CN113645214B (zh) * 2021-08-03 2023-08-15 北京百度网讯科技有限公司 数据检测方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013097454A1 (zh) * 2011-12-31 2013-07-04 华为技术有限公司 一种视频插播的方法、装置及系统
CN104394366A (zh) * 2014-11-26 2015-03-04 东南大学 分布式视频流媒体转码访问控制的方法和系统
CN105657474A (zh) * 2016-02-19 2016-06-08 微鲸科技有限公司 在视频应用中使用基于身份签名体制的防盗链方法及系统
CN107094261A (zh) * 2017-03-17 2017-08-25 武汉斗鱼网络科技有限公司 视频播放的权限校验方法及装置
CN107171785A (zh) * 2017-05-18 2017-09-15 电子科技大学 一种基于区块链技术的数字版权管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106303715A (zh) * 2016-08-25 2017-01-04 乐视控股(北京)有限公司 弹幕存储处理方法及装置
CN107018432B (zh) * 2017-03-28 2020-02-14 华为技术有限公司 媒体内容的许可方法以及设备
CN107172135A (zh) * 2017-05-03 2017-09-15 施瑞琦 基于区块链的收视率统计方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013097454A1 (zh) * 2011-12-31 2013-07-04 华为技术有限公司 一种视频插播的方法、装置及系统
CN104394366A (zh) * 2014-11-26 2015-03-04 东南大学 分布式视频流媒体转码访问控制的方法和系统
CN105657474A (zh) * 2016-02-19 2016-06-08 微鲸科技有限公司 在视频应用中使用基于身份签名体制的防盗链方法及系统
CN107094261A (zh) * 2017-03-17 2017-08-25 武汉斗鱼网络科技有限公司 视频播放的权限校验方法及装置
CN107171785A (zh) * 2017-05-18 2017-09-15 电子科技大学 一种基于区块链技术的数字版权管理方法

Also Published As

Publication number Publication date
CN107801059A (zh) 2018-03-13
WO2019061599A1 (zh) 2019-04-04

Similar Documents

Publication Publication Date Title
CN107801059B (zh) 一种鉴权方法及服务器
CN109740384A (zh) 基于区块链的数据存证方法和装置
US7165050B2 (en) Media on demand via peering
CN104113534B (zh) 应用程序app的登录系统及方法
JP5626816B2 (ja) デジタルコンテンツの部分的暗号化のための方法および装置
CN110138716A (zh) 一种密钥的提供、视频播放方法、服务器及客户端
US11734393B2 (en) Content distribution with renewable content protection
CN108241517A (zh) 一种软件升级方法、客户端及电子设备
CN104933207B (zh) 应用程序中用户行为数据的获取方法和系统
JP2009129386A (ja) 配信方法、サーバ及び受信端末
CN103957436A (zh) 一种基于ott业务的视频防盗链方法
WO2019061629A1 (zh) 一种数据校验方法及服务器
CN108881966B (zh) 一种信息处理方法以及相关设备
WO2019061630A1 (zh) 一种交易核算方法及客户端
CN105939491A (zh) 视频播放方法及装置
WO2019061626A1 (zh) 一种数据校验方法及服务器
CN107682328A (zh) 一种数据校验方法及客户端
CN110446075A (zh) 加密方法及装置、解密方法及装置、电子设备
CN107528855A (zh) 一种数据校验方法及服务器
CN108650526A (zh) 一种识别方法、计算机设备和存储介质
CN111083530A (zh) 一种互联网播控平台的drm集成方法、系统、装置和存储介质
CN104284215B (zh) 一种视频请求的处理方法和装置
CN110012317A (zh) 一种视频获取方法及装置、一种视频加密方法及装置
CN108924108A (zh) 一种用于客户端的通信方法及电子设备
CN110380843B (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