CN108769067B - 一种鉴权校验方法、装置、设备和介质 - Google Patents

一种鉴权校验方法、装置、设备和介质 Download PDF

Info

Publication number
CN108769067B
CN108769067B CN201810688346.3A CN201810688346A CN108769067B CN 108769067 B CN108769067 B CN 108769067B CN 201810688346 A CN201810688346 A CN 201810688346A CN 108769067 B CN108769067 B CN 108769067B
Authority
CN
China
Prior art keywords
data
client
server
authentication
live broadcast
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
CN201810688346.3A
Other languages
English (en)
Other versions
CN108769067A (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 CN201810688346.3A priority Critical patent/CN108769067B/zh
Publication of CN108769067A publication Critical patent/CN108769067A/zh
Application granted granted Critical
Publication of CN108769067B publication Critical patent/CN108769067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Power Engineering (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供了一种鉴权校验方法,该方法包括:发送登陆协议到服务器;若登陆成功,接收服务器下发的token值和随机数据;当客户端连接到直播房间时,生成第一数据;生成第二数据;根据第二数据将第一数据进行排序得到第三数据;生成第四数据;将第三数据与第四数据进行异或运算得到第一鉴权数据;使用第一共享密钥对第一鉴权数据进行加密;向服务器发送视频请求消息,视频请求消息包括加密后的第一鉴权数据,以使得服务器对加密后的第一鉴权数据进行解密,并验证第一鉴权数据与服务器生成的第二鉴权数据是否一致;若是,接收服务器发送的直播房间的视频信息。可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频流地址。

Description

一种鉴权校验方法、装置、设备和介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种鉴权校验方法、装置、设备和介质。
背景技术
目前,直播越来越受到大家的欢迎,其中,直播视频是利用互联网及流媒体技术进行直播的,用户进入直播网站后选择想要观看的直播视频,通过直播网站获取视频提供方的视频流地址,从而实现视频的直播。
然而,存在一些非法用户,通过直播网站获取视频提供方的视频流地址后,通过第三方平台使用视频流地址来播放视频,从而绕过直播网站的视频播放器提供的视频播放功能,导致直播网站流量的减少。
发明内容
本发明提供一种鉴权校验方法、装置、设备和介质,可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频提供方的视频流地址,解决了现有技术中非法用户通过直播网站获取视频提供方的视频流地址后,绕过直播网站而通过第三方平台来播放视频,导致直播网站流量的减少的问题。
第一方面,本申请提供了一种鉴权校验方法,所述方法应用于客户端,包括:
发送登陆协议到服务器;
若登陆成功,接收所述服务器下发的token值和随机数据;
当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
使用第一共享密钥对所述第一鉴权数据进行加密;
向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
若是,接收所述服务器发送的所述直播房间的视频信息。
可选的,所述生成第二数据包括:
将所述随机数据和所述时间戳进行HASH运算得到第二数据,所述第二数据和所述第一数据均为32位的字符串数据;
所述根据所述第二数据将所述第一数据进行排序得到第三数据,包括:
获取所述第二数据的第一位字符,并对所述第二数据的第一位字符进行32位求模数运算得到数值ri;
获取所述第一数据的第一位字符,将所述第一数据的第一位字符与所述第一数据的第ri位字符交换;
按顺序获取所述第二数据的下一位字符,对所述第二数据的下一位字符进行32位求模数运算得到下一个数值ri,按顺序获取所述第一数据的下一位字符,将所述第一数据的下一位字符与所述第一数据中所述下一个数值ri对应的字符交换,直到所述第二数据的所有字符遍历完毕。
可选的,所述生成第四数据包括:
由第一替换数据,第二替换数据,第三替换数据和第四替换数据组成所述第四数据,其中,所述第一替换数据通过将所述随机数据、所述时间戳和所述客户端的用户唯一标识进行HASH运算生成,所述第二替换数据通过将所述随机数据、所述时间戳和所述直播房间的房间号进行HASH运算生成,所述第三替换数据通过将所述随机数据、所述时间戳和所述客户端的设备唯一标识进行HASH运算生成,所述第四替换数据通过将所述随机数据、所述时间戳和所述token值进行HASH运算生成;
所述将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据,包括:
所述第三数据为32位的字符串数据,将所述第三数据转化成16进制的16位数据,并将转化后的所述第三数据分成分别包括4位数据的数据一、数据二、数据三和数据四;
分别将所述第一替换数据与所述数据一进行异或运算得到第一结果,将所述第二替换数据与所述数据二进行异或运算得到第二结果,将所述第三替换数据与所述数据三进行异或运算得到第三结果,将所述第四替换数据与所述数据四进行异或运算得到第四结果,由所述第一结果、所述第二结果、所述第三结果和所述第四结果组合得到所述第一鉴权数据。
第二方面,本申请提供了一种鉴权校验方法,所述方法应用于服务器,包括:
接收客户端发送的登陆协议;
若登陆成功,向所述客户端下发token值和随机数据;
当所述客户端连接到直播房间时,接收所述客户端发送的视频请求消息,所述视频请求消息用于向所述服务器请求所述直播房间的视频信息,所述视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、所述客户端的版本号和时间戳;
使用第二享密钥对加密后的所述第一鉴权数据进行解密,所述第二共享密钥与第一共享密钥的值匹配;
将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、所述时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述服务器存有所述客户端的用户唯一标识和所述客户端的设备唯一标识;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第二鉴权数据;
验证解密得到的所述第一鉴权数据与所述服务器生成的所述第二鉴权数据是否一致;
若是,向所述客户端发送所述直播房间的视频信息。
第三方面,本申请提供了一种鉴权校验装置,所述装置应用于客户端,包括:
发送单元,用于发送登陆协议到服务器;
接收单元,用于若登陆成功,接收所述服务器下发的token值和随机数据;
生成单元,用于当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;还用于生成第二数据;还用于根据所述第二数据将所述第一数据进行排序得到第三数据;还用于生成第四数据;还用于将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
加密单元,用于使用第一共享密钥对所述第一鉴权数据进行加密;
所述发送单元还用于向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
所述接收单元还用于若是,接收所述服务器发送的所述直播房间的视频信息。
可选的,所述生成单元还用于生成第二数据,具体包括:
将所述随机数据和所述时间戳进行HASH运算得到第二数据,所述第二数据和所述第一数据均为32位的字符串数据;
所述根据所述第二数据将所述第一数据进行排序得到第三数据,包括:
获取所述第二数据的第一位字符,并对所述第二数据的第一位字符进行32位求模数运算得到数值ri;
获取所述第一数据的第一位字符,将所述第一数据的第一位字符与所述第一数据的第ri位字符交换;
按顺序获取所述第二数据的下一位字符,对所述第二数据的下一位字符进行32位求模数运算得到下一个数值ri,按顺序获取所述第一数据的下一位字符,将所述第一数据的下一位字符与所述第一数据中所述下一个数值ri对应的字符交换,直到所述第二数据的所有字符遍历完毕。
可选的,所述生成单元还用于生成第四数据,具体包括:
由第一替换数据,第二替换数据,第三替换数据和第四替换数据组成所述第四数据,其中,所述第一替换数据通过将所述随机数据、所述时间戳和所述客户端的用户唯一标识进行HASH运算生成,所述第二替换数据通过将所述随机数据、所述时间戳和所述直播房间的房间号进行HASH运算生成,所述第三替换数据通过将所述随机数据、所述时间戳和所述客户端的设备唯一标识进行HASH运算生成,所述第四替换数据通过将所述随机数据、所述时间戳和所述token值进行HASH运算生成;
所述将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据,包括:
所述第三数据为32位的字符串数据,将所述第三数据转化成16进制的16位数据,并将转化后的所述第三数据分成分别包括4位数据的数据一、数据二、数据三和数据四;
分别将所述第一替换数据与所述数据一进行异或运算得到第一结果,将所述第二替换数据与所述数据二进行异或运算得到第二结果,将所述第三替换数据与所述数据三进行异或运算得到第三结果,将所述第四替换数据与所述数据四进行异或运算得到第四结果,将所述第一结果、所述第二结果、所述第三结果和所述第四结果组合得到所述第一鉴权数据。
第四方面,本申请提供了一种鉴权校验装置,所述装置应用于服务器,包括:
接收单元,用于接收客户端发送的登陆协议;
发送单元,用于若登陆成功,向所述客户端下发token值和随机数据;
所述接收单元还用于当所述客户端连接到直播房间时,接收所述客户端发送的视频请求消息,所述视频请求消息用于向所述服务器请求所述直播房间的视频信息,所述视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、所述客户端的版本号和时间戳;
解密单元,用于使用第二享密钥对加密后的所述第一鉴权数据进行解密,所述第二共享密钥与第一共享密钥的值匹配;
生成单元,用于将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、所述时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述服务器存有所述客户端的用户唯一标识和所述客户端的设备唯一标识;还用于生成第二数据;还用于根据所述第二数据将所述第一数据进行排序得到第三数据;还用于生成第四数据;还用于将所述第三数据与所述第四数据进行异或运算得到第二鉴权数据;
验证单元,用于验证解密得到的所述第一鉴权数据与所述服务器生成的所述第二鉴权数据是否一致;
所述发送单元还用于若是,向所述客户端发送所述直播房间的视频信息。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
发送登陆协议到服务器;
若登陆成功,接收所述服务器下发的token值和随机数据;
当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
使用第一共享密钥对所述第一鉴权数据进行加密;
向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
若是,接收所述服务器发送的所述直播房间的视频信息。
第六方面,本申请提供了一种电子设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
发送登陆协议到服务器;
若登陆成功,接收所述服务器下发的token值和随机数据;
当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
使用第一共享密钥对所述第一鉴权数据进行加密;
向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
若是,接收所述服务器发送的所述直播房间的视频信息。
本发明提供了一种鉴权校验方法、装置、设备和介质,该方法包括:发送登陆协议到服务器;若登陆成功,接收所述服务器下发的token值和随机数据;当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;生成第二数据;根据所述第二数据将所述第一数据进行排序得到第三数据;生成第四数据;将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;使用第一共享密钥对所述第一鉴权数据进行加密;向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;若是,接收所述服务器发送的所述直播房间的视频信息。可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频提供方的视频流地址,解决了现有技术中非法用户通过直播网站获取视频提供方的视频流地址后,绕过直播网站而通过第三方平台来播放视频,导致直播网站流量的减少的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一个鉴权校验方法的交互图;
图2为本申请实施例中一个鉴权校验方法的流程图;
图3为本申请实施例中另一个鉴权校验方法的流程图;
图4为本申请实施例中一个鉴权校验装置的结构示意图;
图5为本申请实施例中另一个鉴权校验装置的结构示意图;
图6为本申请实施例中一个电子设备的结构示意图;
图7为本申请实施例中一个计算机可读存储介质的结构示意图。
图8为本申请实施例中另一个电子设备的结构示意图;
图9为本申请实施例中另一个计算机可读存储介质的结构示意图。
具体实施方式
本发明提供了一种鉴权校验方法、装置、设备和介质,可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频提供方的视频流地址,解决了现有技术中非法用户通过直播网站获取视频提供方的视频流地址后,绕过直播网站而通过第三方平台来播放视频,导致直播网站流量的减少的问题。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍具体实施例之前,先介绍本申请实施例所适用于的系统,如图1所示,该系统包括服务器和客户端,该服务器与客户端通过无线或有线网络连接,该服务器可以为单独的服务器,服务器组或云端;该客户端可以是智能手机、平板电脑、台式机等,在此不作限制,也不一一列举。
实施例一
基于客户端和服务器交互的角度,本发明实施例一提供了一种鉴权校验方法,请参考图1,该方法包括:
步骤S101,客户端发送登陆协议到服务器。
相应的,服务器接收客户端发送的登录协议。客户端发送登录协议到服务器,服务器判断客户端登录信息的合法性,以及是否为注册用户,如果登录信息不合法或者不是注册用户,则登录失败,弹幕服务器会主动断开该链接。同时,客户端可以在发送登陆协议的时候将用户唯一标识和设备唯一标识发送至服务器,服务器存储接收到的用户唯一标识和设备唯一标识。
步骤S102,若登陆成功,客户端接收服务器下发的token值和随机数据。
相应的,服务器向客户端下发token值和随机数据。token(令牌)是可以有效验证客户端是否是一个直播平台注册登陆的用户,并且token能够保障不同的用户其token值是不一样的。本实施例中,将token字段用于计算鉴权数据,保障了不同的用户,最终计算的鉴权数据是不一样的。
随机数据是由服务器生成的一个随机数,具体的,可以通过调用系统随机函数生成的一个16位的随机数,并对应该客户端记录此数据。此外,服务器可以在客户端每次登录成功的时候,返回不同的随机数据。
步骤S103,当客户端连接到直播房间时,客户端将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据。
具体来讲,参与鉴权算法的数据越多,数据的随机性越高,任何一个数据的变化最终都会影响到鉴权数据的变化。本实施例中,客户端的用户唯一标识UID可以保障不同用户的鉴权数据是不一样的;直播房间的房间号RoomID,可以保障每个直播间的鉴权数据是不一样的;客户端登录到服务器后下发的Token值,可以保障只有登录用户才能请求直播间的视频流地址;客户端的设备唯一标识DeviceID,可以保障即使是同一个用户同一个直播间,不同的设备也会导致鉴权数据的不一致;客户端的版本号Version,可以保障对于不同的客户端版本的鉴权数据是不一致的;时间戳信息TimeStamp,可以保障不同时刻的鉴权数据是不一致的,以使得同一个直播间每次计算的鉴权数据都是不一样的,并且上次计算的鉴权数据无法复用;登陆时服务器下发的随机数据RandData,可以保障客户端进行安全计算时的随机性,同时服务器下发的数据也会最终影响到计算的鉴权数据,加强了服务器对客户端的控制。
客户端将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据。举例来说,代码的实现可以包括:
(1)定义一个MD5的对象;
MD5md5;
md5.update(char*buffer,uint length);
其中,md5的接口是update函数,第一个参数char*buffer表示输入需要计算的字符串,其中第二个参数uint length表示输入需要计算的字符串的长度。
对于本实施例需要参与计算的数据包括:客户端的用户唯一标识UID、客户端的设备唯一标识DeviceId、直播房间的房间号RoomId、token值、客户端的版本号Version、时间戳TimeStamp和随机数据RandData,具体的:
Update(UID+RoomId+Token+DeviceId+Version+TimeStamp+RandData,length)
(2)调用Md5的接口来计算第一数据。
Key=md5.toString();
其中key值是第一数据,key值是一个长度为32位的字符串数据。
需要说明的是,本实施例采用HASH算法中的MD5算法为例进行介绍,并不用于限制本申请,在一些其他的实现方式中,也可以使用SHA算法,或者HMAC算法等。
还需要说明的是,直播房间的房间号通过向服务器发送获取房间信息的协议来获取,例如在用户打开直播软件的时候向服务器请求房间列表信息,从而获取到所有直播房间的房间号。
步骤S104,客户端生成第二数据。
具体的,将随机数据和时间戳进行HASH运算得到第二数据,第二数据和第一数据均为32位的字符串数据。本实施中,并不直接使用服务器下发的随机数据作为第二数据,而是对随机数据进行一次HASH计算,从而服务器的随机数据可以是任意长度的,并且进行HASH时为了保障数据每次打乱的是不一样的,所以加入时间戳一起进行计算HASH值。举个例子,代码的实现包括:
(1)定义一个md5对象;
Md5md5;
md5.update(randdata+timestamp,length);
其中,md5的接口是update函数,输入的参数randdata为随机数据,timestamp为时间戳。
(2)对服务器的随机数据和客户端的时间戳计算md5值得到第二数据。
Randkey=md5.toString();
其中Randkey为第二数据,调用md5.toString会得到一串32位的字符串。
步骤S105,客户端根据第二数据将第一数据进行排序得到第三数据。
具体的,获取第二数据的第一位字符,并对第二数据的第一位字符进行32位求模数运算得到数值ri;获取第一数据的第一位字符,将第一数据的第一位字符与第一数据的第ri位字符交换;按顺序获取第二数据的下一位字符,对第二数据的下一位字符进行32位求模数运算得到下一个数值ri,按顺序获取第一数据的下一位字符,将第一数据的下一位字符与第一数据中下一个数值ri对应的字符交换,直到第二数据的所有字符遍历完毕。举例来讲,代码的实现可以包括:
对于第一数据本实施例使用一个STL容器的vector来进行存储,首先先定义一个vector对象,然后将第一数据赋值到此对象中。
vector<int>vecKey
For(int I=0;I<32;i++)
{编写一个for循环来遍历第一数据key,同时将数据赋值到vecKey中。
vecKey.push_back(key[i]);}
接下来本实施例需要对第一数据进行排序从而实现数据的打乱。
For(int I=0;I<32;i++)
{编写一个循环来对第一数据的32个数据进行乱序的排序。
Tempdata=vecKey[i];
取出vecKey对象中的第i个数据保存到临时变量Tempdata中。
从randkey中取出数据第i个数据。
ri=randkey[i];
由于vecKey的长度是32位,所以需要对ri的值进行32为求模数,ri=ri%32;
然后对vecKey中的数据进行替换。
VecKey[i]=veckey[ri];
首先将第ri位置的数据赋值到第i位的数据上,然后将tempdata的数据赋值到第i位的数据上。
Veckey[ri]=tempdata。
从而实现了对第一数据的第i位置的数据和第ri位置的数据进行交换,排序后的第一数据即为第三数据。}
步骤S106,客户端生成第四数据。
具体的,第四数据包括第一替换数据,第二替换数据,第三替换数据和第四替换数据,其中,第一替换数据通过将随机数据、时间戳和客户端的用户唯一标识进行HASH运算生成,第二替换数据通过将随机数据、时间戳和直播房间的房间号进行HASH运算生成,第三替换数据通过将随机数据、时间戳和客户端的设备唯一标识进行HASH运算生成,第四替换数据通过将随机数据、时间戳和token值进行HASH运算生成,第一替换数据,第二替换数据,第三替换数据和第四替换数据之间可以是顺序排列或随机排列来生成第四数据。
举例来讲,代码的实现可以包括:
Replacekey1=md5.update(randdata+timestamp+UID,length);
Replacekey2=md5.update(randdata+timestamp+RoomId,length);
Replacekey3=md5.update(randdata+timestamp+DeviceId,length);
Replacekey4=md5.update(randdata+timestamp+Token,length);
其中,第四数据Replacekey包括为第一替换数据Replacekey1,为第二替换数据Replacekey2,第三替换数据Replacekey3,第四替换数据Replacekey4。
需要说明的是,为了更多的变化性,本实施例可以采用HASH算法中的crc32算法,以使得最终生成是数据是一个32位的整数。
步骤S107,客户端将第三数据与第四数据进行异或运算得到第一鉴权数据。
具体的,第三数据为32位的字符串数据,将第三数据转化成16进制的16位数据,并将转化后的第三数据分成分别包括4位数据的数据一、数据二、数据三和数据四;
分别将第一替换数据与数据一进行异或运算得到第一结果,将第二替换数据与数据二进行异或运算得到第二结果,将第三替换数据与数据三进行异或运算得到第三结果,将第四替换数据与数据四进行异或运算得到第四结果,由第一结果、第二结果、第三结果和第四结果组合得到第一鉴权数据。
举例来讲,代码的实现可以包括:
首先将包括32位字符串的第三数据通过bintohex()函数转化成16进制的数据Keybin,对于16位的数据Keybin,每4个数据使用一个replacekey数据来替换:
Keybin[0]^=Replacekey1;Keybin[1]^=Replacekey2;
Keybin[2]^=Replacekey3;Keybin[3]^=Replacekey4;
其中,Keybin[0]为数据一,Keybin[1]为数据二,Keybin[2]为包括数据三,Keybin[3]为数据四,经过异或运算后的Keybin再经过hextobin()函数转化为32位字符串的数据,该数据即为第一鉴权数据。
步骤S108,客户端使用第一共享密钥对第一鉴权数据进行加密。
在客户端使用第一共享密钥对第一鉴权数据进行加密之前,客户端先生成第一共享密钥,具体步骤如下:
(1)客户端生成第一随机数据;
该第一随机数据是由客户端生成的,用来生成第一共享密钥的随机数据,为了与生成鉴权数据中使用的随机数据进行区分,在客户端生成第一共享密钥中使用的随机数据命名为第一随机数据,在服务器生成第二共享密钥中使用的随机数据命名为第二随机数据。具体的,客户端可以通过调用系统函数rand来生成第一随机数据Randdata,Randdata=rand()。
(2)客户端将用户唯一标识、第一时间戳和第一随机数据进行Md5运算得到第一私钥;
该第一时间戳是指客户端生成第一私钥时的时间戳,为了与生成鉴权数据中使用的时间戳进行区分,在客户端生成第一共享密钥中使用的时间戳命名为第一时间戳,在服务器生成第二共享密钥中使用的时间戳命名为第二时间戳。具体的,客户端可以通过调用Md5函数的接口Md5.Create,将用户唯一标识、第一时间戳以及第一随机数据进行Md5运算,从而得到了第一私钥,具体的:
ClientPrivatekey=Md5.Create(UserId+TimeStamp+Randdata)
其中,ClientPrivatekey为第一私钥,UserId为用户唯一标识,TimeStamp为第一时间戳,Randdata为第一随机数据。
(3)根据第一私钥计算第一公钥;
非对称算法有很多,本实施例以采用非对称RSA加密算法为例进行介绍,客户端调用RSA的生成配对钥匙接口RSA.CreatePair来生成第一公钥,从而生成的第一私钥和第一公钥是唯一配对的关系,具体的:
ClientPublickey=RSA.CreatePair(ClientPrivatekey)
其中,ClientPublickey为第一公钥,ClientPrivatekey为第一私钥。
通过以上步骤,客户端生成了一对客户端密钥,包括第一私钥和第一公钥。
类似的,在服务器侧,客户端登录到服务器时,服务器根据非对称算法为客户端生成一对服务器密钥,一对服务器密钥包括第二公钥和第二私钥,具体的步骤如下:
(1)服务器生成第二随机数据;
该第二随机数据是由服务器生成的,用来生成第二共享密钥的随机数据。通过调用系统函数rand来生成一段随机数据Randdata,具体的,Randdata=rand();
(2)服务器将第二时间戳和第二随机数据进行Md5运算得到第二私钥;
该第二时间戳是指服务器生成第二私钥时的时间戳。具体的,通过调用Md5函数的接口Md5.Create,将第二时间戳以及第二随机数据进行Md5运算,从而得到了第二私钥:
ServerPrivatekey=Md5.Create(Randdata+TimeStamp)
其中,ServerPrivatekey为第二私钥,TimeStamp为第二时间戳,Randdata为服务器生成的第二随机数据。
(3)根据第二私钥计算第二公钥;
非对称算法有很多,本实施例以采用非对称RSA加密算法为例进行介绍,客户端调用RSA的生成配对钥匙接口RSA.CreatePair来生成第二公钥,从而生成的第二私钥和第二公钥是唯一配对的关系,具体的:
ServerPublickey=RSA.CreatePair(ServerPrivatekey)
其中,ServerPublickey为第二公钥,ServerPrivatekey为第二私钥。
接下来,服务器和客户端互换公钥,具体的,服务器向客户端发送第二公钥,客户端接收到第二公钥后,向服务器发送第一公钥,也可以由客户端先向服务器发送第一公钥,服务器接收到第一公钥后,向客户端发送第二公钥,此处不做限定。
在客户端侧,客户端根据第二公钥和第一私钥使用非对称算法生成第一共享密钥,具体包括根据以下公式生成第一共享密钥:
ShareKey=RSA.CreateShareKey(ServerPublickey,ClientPrivatekey),其中,客户端侧的ShareKey为第一共享密钥;
在服务器侧,服务器根据第一公钥和第二私钥使用非对称算法生成第二共享密钥,具体的根据以下公式生成第二共享密钥:
ShareKey=RSA.CreateShareKey(ClientPublickey,ServerPrivatekey),服务器侧的ShareKey为第二共享密钥;
从而,客户端生成的第一共享密钥与服务器生成的第二共享密钥的值相匹配。客户端使用第一共享密钥对第一鉴权数据进行加密,包括根据以下公式对第一鉴权数据进行加密:
encryptData=Aes.encrypt(key+Roomid+DeviceId+timestamp,ShareKey);
其中,encryptData为加密后的第一鉴权数据,本实施例使用加密算法AES来加密,Aes.encrypt是加密的接口,ShareKey为第一共享密钥,key为第一鉴权数据,应当理解,为了描述上的区分,本实施例中使用了第一数据,第三数据,第一鉴权数据的名称来代表经过不同运算后的key,然而在代码的实现中,key是一个变量,最终得到的第一鉴权数据也是变量key。此处的timestamp为生成第一鉴权数据中使用的时间戳。DeviceId为设备唯一标识,RoomID为直播房间的房间号。
步骤S109,客户端向服务器发送视频请求消息。
相应的,服务器接收客户端发送的视频请求消息。视频请求消息用于请求直播房间的视频信息,视频请求消息包括加密后的第一鉴权数据、客户端的版本号和时间戳。
步骤S110,服务器使用第二享密钥对加密后的第一鉴权数据进行解密。
具体的,根据以下公式加密后的第一鉴权数据进行解密:
key+Roomid+DeviceId+timestamp=Aes.decrypt(encryptData,ShareKey);
其中Aes.decrypt则是AES加密算法的解密接口,encryptData则是客户端上报的加密后的第一鉴权数据,ShareKey则是服务器与客户端协商生成的第二共享密钥,步骤S108已对第二共享密钥的生成过程进行描述,此处不再赘述。最终解密出客户端计算的第一鉴权数据key以及参与计算的其他参数。
步骤S111,服务器将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据。
其中,客户端可以在登录到服务器时,将客户端的用户唯一标识、客户端的设备唯一标识发送至服务器,所以服务器存有客户端的用户唯一标识和客户端的设备唯一标识。客户端通过向服务器发送获取房间信息的协议来获取直播房间的房间号,所以服务器也存有客户端进入的直播房间的房间号。从而服务器具备计算第一数据的所有参数,服务器计算第一数据的过程与客户端计算第一数据的过程类似,此处不再赘述。
步骤S112,服务器生成第二数据。
该步骤与客户端生成第二数据的过程类似,此处不再赘述。
步骤S113,服务器根据第二数据将第一数据进行排序得到第三数据。
该步骤与客户端根据第二数据将第一数据进行排序得到第三数据的过程类似,此处不再赘述。
步骤S114,服务器生成第四数据。
该步骤与客户端生成第四数据的过程类似,此处不再赘述。
步骤S115,服务器将第三数据与第四数据进行异或运算得到第二鉴权数据。
该步骤与客户端将第三数据与第四数据进行异或运算得到第一鉴权数据的过程类似,此处不再赘述。
步骤S116,服务器验证解密得到的第一鉴权数据与生成的第二鉴权数据是否一致。
若客户端的用户为合法用户,则客户端生成第一鉴权数据与服务器生成第二鉴权数据的方法是相同的,而且客户端用于生成第一鉴权数据与服务器用于生成第二鉴权数据的数据也是相同的,则第一鉴权数据与第二鉴权数据一致。非法用户没有第一鉴权数据,或者生成的第一鉴权数据不正确,从而服务器通过验证解密得到的第一鉴权数据与生成的第二鉴权数据是否一致可以识别出非法用户。
步骤S117,若是,服务器向客户端发送直播房间的视频信息。
相应的,若是,客户端接收服务器发送的直播房间的视频信息。
还需要说明的是,在一些其他的实现方式中,服务器也可以先生成第二鉴权数据,再解密得到第一鉴权数据,即步骤S110可以在步骤S109至步骤S116之间的任一位置,此处不做太多限定。
本实施例中,客户端发送登陆协议到服务器;若登陆成功,客户端接收服务器下发的token值和随机数据;当客户端连接到直播房间时,客户端将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据,其中,直播房间的房间号通过向服务器发送获取房间信息的协议来获取;客户端生成第二数据;客户端根据第二数据将第一数据进行排序得到第三数据;客户端生成第四数据;客户端将第三数据与第四数据进行异或运算得到第一鉴权数据;客户端使用第一共享密钥对第一鉴权数据进行加密;客户端向服务器发送视频请求消息,视频请求消息用于请求直播房间的视频信息,视频请求消息包括加密后的第一鉴权数据、客户端的版本号和时间戳;服务器使用第二共享密钥对加密后的第一鉴权数据进行解密;服务器使用与客户端相同的方法生成第二鉴权数据,并验证解密得到的第一鉴权数据与生成的第二鉴权数据是否一致;若是,接收服务器发送的直播房间的视频信息。可见,本实施例可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频提供方的视频流地址,解决了现有技术中非法用户通过直播网站获取视频提供方的视频流地址后,绕过直播网站而通过第三方平台来播放视频,导致直播网站流量的减少的问题。
实施例二
基于同一发明构思,本发明实施例二提供了一种鉴权校验方法,该方法应用于图1所示系统中的客户端,请参考图2,该方法包括:
步骤S201,发送登陆协议到服务器;
步骤S202,若登陆成功,接收服务器下发的token值和随机数据;
步骤S203,当客户端连接到直播房间时,将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据,直播房间的房间号通过向服务器发送获取房间信息的协议来获取;
步骤S204,生成第二数据;
步骤S205,根据第二数据将第一数据进行排序得到第三数据;
步骤S206,生成第四数据;
步骤S207,将第三数据与第四数据进行异或运算得到第一鉴权数据;
步骤S208,使用第一共享密钥对第一鉴权数据进行加密;
步骤S209,向服务器发送视频请求消息,视频请求消息用于请求直播房间的视频信息,视频请求消息包括加密后的第一鉴权数据、客户端的版本号和时间戳,以使得服务器使用第二共享密钥对加密后的第一鉴权数据进行解密,并验证解密得到的第一鉴权数据与服务器生成的第二鉴权数据是否一致,第一共享密钥与第二共享密钥的值匹配;
步骤S210,若是,接收服务器发送的直播房间的视频信息。
本实施例中,发送登陆协议到服务器;若登陆成功,接收服务器下发的token值和随机数据;当客户端连接到直播房间时,将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据,其中,直播房间的房间号通过向服务器发送获取房间信息的协议来获取;生成第二数据;根据第二数据将第一数据进行排序得到第三数据;生成第四数据;将第三数据与第四数据进行异或运算得到第一鉴权数据;使用第一共享密钥对第一鉴权数据进行加密;向服务器发送视频请求消息,视频请求消息用于请求直播房间的视频信息,视频请求消息包括加密后的第一鉴权数据、客户端的版本号和时间戳,以使得服务器使用第二共享密钥对加密后的第一鉴权数据进行解密,并验证解密得到的第一鉴权数据与服务器生成的第二鉴权数据是否一致,第一共享密钥与第二共享密钥的值匹配;若是,接收服务器发送的直播房间的视频信息。可见,本实施例可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频提供方的视频流地址,解决了现有技术中非法用户通过直播网站获取视频提供方的视频流地址后,绕过直播网站而通过第三方平台来播放视频,导致直播网站流量的减少的问题。
本实施例提供方法的具体实施步骤已在实施例一中作详细说明,在此不作累述。
实施例三
基于同一发明构思,本发明实施例二提供了一种鉴权校验方法,该方法应用于图1所示系统中的服务器,请参考图3,该方法包括:
步骤S301,接收客户端发送的登陆协议;
步骤S302,若登陆成功,向客户端下发token值和随机数据;
步骤S303,当客户端连接到直播房间时,接收客户端发送的视频请求消息,视频请求消息用于向服务器请求直播房间的视频信息,视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、客户端的版本号和时间戳;
步骤S304,使用第二享密钥对加密后的第一鉴权数据进行解密,第二共享密钥与第一共享密钥的值匹配;
步骤S305,将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据,其中,服务器存有客户端的用户唯一标识和客户端的设备唯一标识;
步骤S306,生成第二数据;
步骤S307,根据第二数据将第一数据进行排序得到第三数据;
步骤S308,生成第四数据;
步骤S309,将第三数据与第四数据进行异或运算得到第二鉴权数据;
步骤S310,验证解密得到的第一鉴权数据与服务器生成的第二鉴权数据是否一致;
步骤S311,若是,向客户端发送直播房间的视频信息。
本实施例中,接收客户端发送的登陆协议;若登陆成功,向客户端下发token值和随机数据;当客户端连接到直播房间时,接收客户端发送的视频请求消息,视频请求消息用于向服务器请求直播房间的视频信息,视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、客户端的版本号和时间戳;使用第二享密钥对加密后的第一鉴权数据进行解密,第二共享密钥与第一共享密钥的值匹配;将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据;生成第二数据;根据第二数据将第一数据进行排序得到第三数据;生成第四数据;将第三数据与第四数据进行异或运算得到第二鉴权数据;验证解密得到的第一鉴权数据与服务器生成的第二鉴权数据是否一致;若是,向客户端发送直播房间的视频信息。可见,本实施例可以对观看直播视频的用户进行鉴权校验,防止非法用户通过直播网站获取视频提供方的视频流地址,解决了现有技术中非法用户通过直播网站获取视频提供方的视频流地址后,绕过直播网站而通过第三方平台来播放视频,导致直播网站流量的减少的问题。
本实施例提供方法的具体实施步骤已在实施例一中作详细说明,在此不作累述。
实施例四
基于同一发明构思,实施例四将提供了一种鉴权校验装置,该装置应用于客户端,请参考图4,该装置包括:
发送单元401,用于发送登陆协议到服务器;
接收单元402,用于若登陆成功,接收服务器下发的token值和随机数据;
生成单元403,用于当客户端连接到直播房间时,将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据,其中,直播房间的房间号通过向服务器发送获取房间信息的协议来获取;还用于生成第二数据;还用于根据第二数据将第一数据进行排序得到第三数据;还用于生成第四数据;还用于将第三数据与第四数据进行异或运算得到第一鉴权数据;
加密单元404,用于使用第一共享密钥对第一鉴权数据进行加密;
发送单元401还用于向服务器发送视频请求消息,视频请求消息用于请求直播房间的视频信息,视频请求消息包括加密后的第一鉴权数据、客户端的版本号和时间戳,以使得服务器使用第二共享密钥对加密后的第一鉴权数据进行解密,并验证解密得到的第一鉴权数据与服务器生成的第二鉴权数据是否一致,第一共享密钥与第二共享密钥的值匹配;
接收单元402还用于若是,接收服务器发送的直播房间的视频信息。
由于本发明实施例四所介绍的装置,可以实施上述由客户端执行的所有步骤,故而在此不再赘述。
实施例五
基于同一发明构思,实施例四将提供了一种鉴权校验装置,该装置应用于服务器,请参考图5,该装置包括:
接收单元501,用于接收客户端发送的登陆协议;
发送单元502,用于若登陆成功,向客户端下发token值和随机数据;
接收单元501还用于当客户端连接到直播房间时,接收客户端发送的视频请求消息,视频请求消息用于向服务器请求直播房间的视频信息,视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、客户端的版本号和时间戳;
解密单元503,用于使用第二享密钥对加密后的第一鉴权数据进行解密,第二共享密钥与第一共享密钥的值匹配;
生成单元504,用于将客户端的用户唯一标识、客户端的设备唯一标识、直播房间的房间号、token值、客户端的版本号、时间戳和随机数据进行HASH运算得到第一数据,其中,服务器存有客户端的用户唯一标识和客户端的设备唯一标识;还用于生成第二数据;还用于根据第二数据将第一数据进行排序得到第三数据;还用于生成第四数据;还用于将第三数据与第四数据进行异或运算得到第二鉴权数据;
验证单元505,用于验证解密得到的第一鉴权数据与服务器生成的第二鉴权数据是否一致;
发送单元502还用于若是,向客户端发送直播房间的视频信息。
由于本发明实施例五所介绍的装置,可以实施上述由服务器执行的所有步骤,故而在此不再赘述。
实施例六
基于同一发明构思,实施例六提供了一种电子设备600,如图6所示,包括存储器610、处理器620及存储在存储器610上并可在处理器620上运行的计算机程序611,处理器620执行计算机程序611时,可以实现上述由客户端执行的所有步骤,故而在此不再赘述。
实施例七
基于同一发明构思,本实施例提供一种计算机可读存储介质700,如图7所示,其上存储有计算机程序711,该计算机程序711被处理器执行时,可以实现上述由客户端执行的所有步骤,故而在此不再赘述。
实施例八
基于同一发明构思,实施例六提供了一种电子设备800,如图8所示,包括存储器810、处理器820及存储在存储器810上并可在处理器820上运行的计算机程序811,处理器820执行计算机程序811时,可以实现上述由服务器执行的所有步骤,故而在此不再赘述。
实施例九
基于同一发明构思,本实施例提供一种计算机可读存储介质900,如图9所示,其上存储有计算机程序911,该计算机程序911被处理器执行时,可以实现上述由服务器执行的所有步骤,故而在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种鉴权校验方法,其特征在于,所述方法应用于客户端,所述方法包括:
发送登陆协议到服务器;
若登陆成功,接收所述服务器下发的token值和随机数据;
当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
使用第一共享密钥对所述第一鉴权数据进行加密;
向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
若是,接收所述服务器发送的所述直播房间的视频信息。
2.根据权利要求1所述的方法,其特征在于,所述生成第二数据包括:
将所述随机数据和所述时间戳进行HASH运算得到第二数据,所述第二数据和所述第一数据均为32位的字符串数据;
所述根据所述第二数据将所述第一数据进行排序得到第三数据,包括:
获取所述第二数据的第一位字符,并对所述第二数据的第一位字符进行32位求模数运算得到数值ri;
获取所述第一数据的第一位字符,将所述第一数据的第一位字符与所述第一数据的第ri位字符交换;
按顺序获取所述第二数据的下一位字符,对所述第二数据的下一位字符进行32位求模数运算得到下一个数值ri,按顺序获取所述第一数据的下一位字符,将所述第一数据的下一位字符与所述第一数据中所述下一个数值ri对应的字符交换,直到所述第二数据的所有字符遍历完毕。
3.根据权利要求1或2所述的方法,其特征在于,所述生成第四数据包括:
由第一替换数据,第二替换数据,第三替换数据和第四替换数据组成所述第四数据,其中,所述第一替换数据通过将所述随机数据、所述时间戳和所述客户端的用户唯一标识进行HASH运算生成,所述第二替换数据通过将所述随机数据、所述时间戳和所述直播房间的房间号进行HASH运算生成,所述第三替换数据通过将所述随机数据、所述时间戳和所述客户端的设备唯一标识进行HASH运算生成,所述第四替换数据通过将所述随机数据、所述时间戳和所述token值进行HASH运算生成;
所述将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据,包括:
所述第三数据为32位的字符串数据,将所述第三数据转化成16进制的16位数据,并将转化后的所述第三数据分成分别包括4位数据的数据一、数据二、数据三和数据四;
分别将所述第一替换数据与所述数据一进行异或运算得到第一结果,将所述第二替换数据与所述数据二进行异或运算得到第二结果,将所述第三替换数据与所述数据三进行异或运算得到第三结果,将所述第四替换数据与所述数据四进行异或运算得到第四结果,由所述第一结果、所述第二结果、所述第三结果和所述第四结果组合得到所述第一鉴权数据。
4.一种鉴权校验方法,其特征在于,所述方法应用于服务器,所述方法包括:
接收客户端发送的登陆协议;
若登陆成功,向所述客户端下发token值和随机数据;
当所述客户端连接到直播房间时,接收所述客户端发送的视频请求消息,所述视频请求消息用于向所述服务器请求所述直播房间的视频信息,所述视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、所述客户端的版本号和时间戳;
使用第二共享密钥对加密后的所述第一鉴权数据进行解密;所述第二共享密钥与第一共享密钥的值匹配;
将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、所述时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述服务器存有所述客户端的用户唯一标识和所述客户端的设备唯一标识;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第二鉴权数据;
验证解密得到的所述第一鉴权数据与所述服务器生成的所述第二鉴权数据是否一致;
若是,向所述客户端发送所述直播房间的视频信息。
5.一种鉴权校验装置,其特征在于,所述装置应用于客户端,所述装置包括:
发送单元,用于发送登陆协议到服务器;
接收单元,用于若登陆成功,接收所述服务器下发的token值和随机数据;
生成单元,用于当所述客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;还用于生成第二数据;还用于根据所述第二数据将所述第一数据进行排序得到第三数据;还用于生成第四数据;还用于将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
加密单元,用于使用第一共享密钥对所述第一鉴权数据进行加密;
所述发送单元还用于向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
所述接收单元还用于若是,接收所述服务器发送的所述直播房间的视频信息。
6.根据权利要求5所述的装置,其特征在于,所述生成单元还用于生成第二数据,具体包括:
将所述随机数据和所述时间戳进行HASH运算得到第二数据,所述第二数据和所述第一数据均为32位的字符串数据;
所述根据所述第二数据将所述第一数据进行排序得到第三数据,包括:
获取所述第二数据的第一位字符,并对所述第二数据的第一位字符进行32位求模数运算得到数值ri;
获取所述第一数据的第一位字符,将所述第一数据的第一位字符与所述第一数据的第ri位字符交换;
按顺序获取所述第二数据的下一位字符,对所述第二数据的下一位字符进行32位求模数运算得到下一个数值ri,按顺序获取所述第一数据的下一位字符,将所述第一数据的下一位字符与所述第一数据中所述下一个数值ri对应的字符交换,直到所述第二数据的所有字符遍历完毕。
7.根据权利要求5或6所述的装置,其特征在于,所述生成单元还用于生成第四数据,具体包括:
由第一替换数据,第二替换数据,第三替换数据和第四替换数据组成所述第四数据,其中,所述第一替换数据通过将所述随机数据、所述时间戳和所述客户端的用户唯一标识进行HASH运算生成,所述第二替换数据通过将所述随机数据、所述时间戳和所述直播房间的房间号进行HASH运算生成,所述第三替换数据通过将所述随机数据、所述时间戳和所述客户端的设备唯一标识进行HASH运算生成,所述第四替换数据通过将所述随机数据、所述时间戳和所述token值进行HASH运算生成;
所述将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据,包括:
所述第三数据为32位的字符串数据,将所述第三数据转化成16进制的16位数据,并将转化后的所述第三数据分成分别包括4位数据的数据一、数据二、数据三和数据四;
分别将所述第一替换数据与所述数据一进行异或运算得到第一结果,将所述第二替换数据与所述数据二进行异或运算得到第二结果,将所述第三替换数据与所述数据三进行异或运算得到第三结果,将所述第四替换数据与所述数据四进行异或运算得到第四结果,将所述第一结果、所述第二结果、所述第三结果和所述第四结果组合得到所述第一鉴权数据。
8.一种鉴权校验装置,其特征在于,所述装置应用于服务器,所述装置包括:
接收单元,用于接收客户端发送的登陆协议;
发送单元,用于若登陆成功,向所述客户端下发token值和随机数据;
所述接收单元还用于当所述客户端连接到直播房间时,接收所述客户端发送的视频请求消息,所述视频请求消息用于向所述服务器请求所述直播房间的视频信息,所述视频请求消息包括采用第一共享密钥加密后的第一鉴权数据、所述客户端的版本号和时间戳;
解密单元,用于使用第二共享密钥对加密后的所述第一鉴权数据进行解密,所述第二共享密钥与第一共享密钥的值匹配;
生成单元,用于将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、所述时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述服务器存有所述客户端的用户唯一标识和所述客户端的设备唯一标识;还用于生成第二数据;还用于根据所述第二数据将所述第一数据进行排序得到第三数据;还用于生成第四数据;还用于将所述第三数据与所述第四数据进行异或运算得到第二鉴权数据;
验证单元,用于验证解密得到的所述第一鉴权数据与所述服务器生成的所述第二鉴权数据是否一致;
所述发送单元还用于若是,向所述客户端发送所述直播房间的视频信息。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
发送登陆协议到服务器;
若登陆成功,接收所述服务器下发的token值和随机数据;
当客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
使用第一共享密钥对所述第一鉴权数据进行加密;
向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
若是,接收所述服务器发送的所述直播房间的视频信息。
10.一种电子设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
发送登陆协议到服务器;
若登陆成功,接收所述服务器下发的token值和随机数据;
当客户端连接到直播房间时,将所述客户端的用户唯一标识、所述客户端的设备唯一标识、所述直播房间的房间号、所述token值、所述客户端的版本号、时间戳和所述随机数据进行HASH运算得到第一数据,其中,所述直播房间的房间号通过向所述服务器发送获取房间信息的协议来获取;
生成第二数据;
根据所述第二数据将所述第一数据进行排序得到第三数据;
生成第四数据;
将所述第三数据与所述第四数据进行异或运算得到第一鉴权数据;
使用第一共享密钥对所述第一鉴权数据进行加密;
向所述服务器发送视频请求消息,所述视频请求消息用于请求所述直播房间的视频信息,所述视频请求消息包括加密后的所述第一鉴权数据、所述客户端的版本号和所述时间戳,以使得所述服务器使用第二共享密钥对加密后的所述第一鉴权数据进行解密,并验证解密得到的所述第一鉴权数据与所述服务器生成的第二鉴权数据是否一致,所述第一共享密钥与所述第二共享密钥的值匹配;
若是,接收所述服务器发送的所述直播房间的视频信息。
CN201810688346.3A 2018-06-28 2018-06-28 一种鉴权校验方法、装置、设备和介质 Active CN108769067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810688346.3A CN108769067B (zh) 2018-06-28 2018-06-28 一种鉴权校验方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810688346.3A CN108769067B (zh) 2018-06-28 2018-06-28 一种鉴权校验方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN108769067A CN108769067A (zh) 2018-11-06
CN108769067B true CN108769067B (zh) 2021-03-16

Family

ID=63974504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810688346.3A Active CN108769067B (zh) 2018-06-28 2018-06-28 一种鉴权校验方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN108769067B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111160069B (zh) * 2018-11-07 2023-07-18 航天信息股份有限公司 一种活体检测方法及装置
CN110061988B (zh) * 2019-04-19 2022-06-10 深圳市网心科技有限公司 嵌入式设备的鉴权方法、嵌入式设备、业务服务器及存储介质
CN110266653B (zh) * 2019-05-29 2021-09-14 深圳市梦网科技发展有限公司 一种鉴权方法、系统及终端设备
CN110704855B (zh) * 2019-10-08 2021-07-23 深圳市云桥科技服务有限公司 请求标识生成方法、请求标识验证方法和计算机设备
CN111314725A (zh) * 2020-02-19 2020-06-19 安徽文香信息技术有限公司 一种直播访问的方法、系统、设备及计算机存储介质
CN111343079B (zh) * 2020-02-24 2022-05-17 北京字节跳动网络技术有限公司 进行语音通话的方法及装置
CN111372092B (zh) * 2020-03-04 2022-03-04 北京字节跳动网络技术有限公司 通信链路建立方法、装置、设备及存储介质
CN111046449B (zh) * 2020-03-16 2021-01-26 杭州海康威视数字技术股份有限公司 数据显示控制方法、装置及电子设备
CN111552985B (zh) * 2020-05-14 2023-01-20 支付宝(杭州)信息技术有限公司 一种信息核验方法和装置
CN113761549A (zh) * 2020-11-04 2021-12-07 北京沃东天骏信息技术有限公司 一种接口安全控制、校验方法和装置
CN114218598B (zh) * 2022-02-22 2022-06-17 北京指掌易科技有限公司 一种业务处理方法、装置、设备和存储介质
CN114599033B (zh) * 2022-05-10 2022-08-16 中移(上海)信息通信科技有限公司 一种通信鉴权处理方法及装置
CN115002089B (zh) * 2022-06-30 2023-09-19 兰州乐智教育科技有限责任公司 流媒体传输方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106131047A (zh) * 2016-08-12 2016-11-16 乐视控股(北京)有限公司 账号登录方法及相关设备、账号登录系统
US9503452B1 (en) * 2016-04-07 2016-11-22 Automiti Llc System and method for identity recognition and affiliation of a user in a service transaction
CN106993201A (zh) * 2017-03-17 2017-07-28 武汉斗鱼网络科技有限公司 视频播放的权限校验方法及装置
CN107094261A (zh) * 2017-03-17 2017-08-25 武汉斗鱼网络科技有限公司 视频播放的权限校验方法及装置
CN107493283A (zh) * 2017-08-18 2017-12-19 广州久邦世纪科技有限公司 一种基于直播平台的消息安全加密的实现方法及其系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503452B1 (en) * 2016-04-07 2016-11-22 Automiti Llc System and method for identity recognition and affiliation of a user in a service transaction
CN106131047A (zh) * 2016-08-12 2016-11-16 乐视控股(北京)有限公司 账号登录方法及相关设备、账号登录系统
CN106993201A (zh) * 2017-03-17 2017-07-28 武汉斗鱼网络科技有限公司 视频播放的权限校验方法及装置
CN107094261A (zh) * 2017-03-17 2017-08-25 武汉斗鱼网络科技有限公司 视频播放的权限校验方法及装置
CN107493283A (zh) * 2017-08-18 2017-12-19 广州久邦世纪科技有限公司 一种基于直播平台的消息安全加密的实现方法及其系统

Also Published As

Publication number Publication date
CN108769067A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108769067B (zh) 一种鉴权校验方法、装置、设备和介质
CN110378139B (zh) 一种数据密钥保护方法、系统及电子设备和存储介质
CN108809646B (zh) 安全共享密钥共享系统
US8925109B2 (en) Client-side player file and content license verification
CN108241517B (zh) 一种软件升级方法、客户端及电子设备
CN107135408B (zh) 一种视频流地址的鉴权方法及装置
US10476672B2 (en) Fragmented encryption of a secret
US9178881B2 (en) Proof of device genuineness
CN110011950B (zh) 一种视频流地址的鉴权方法及装置
KR20080004165A (ko) 브로드캐스트 암호화를 이용한 디바이스 인증 방법
CN104184740A (zh) 可信传输方法、可信第三方和可信传输系统
CN109962777A (zh) 许可区块链系统中的密钥生成、获取密钥的方法及设备
WO2021051941A1 (zh) 一种信息处理方法及装置
CN108431819B (zh) 保护客户端访问视频播放器的drm代理的服务的方法和系统
CN110995446A (zh) 证据验证方法、装置、服务器及存储介质
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
WO2018076291A1 (zh) 权限令牌生成方法、系统及其设备
CN108206961B (zh) 一种计算直播平台人气的方法及相关设备
CN108199836B (zh) 一种密钥与设备绑定、解绑定的方法及装置
CN108235067B (zh) 一种视频流地址的鉴权方法及装置
CN111740995B (zh) 一种授权认证方法及相关装置
WO2018176816A1 (zh) 一种视频请求、视频播放方法及装置
CN117240625A (zh) 一种涉及防篡改的数据处理方法、装置及电子设备
JP2016075765A (ja) 認証暗号化装置および認証復号装置、ならびに、それらのプログラム
CN110139163B (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