CN108882005B - 一种弹幕验证方法、计算机设备和存储介质 - Google Patents

一种弹幕验证方法、计算机设备和存储介质 Download PDF

Info

Publication number
CN108882005B
CN108882005B CN201810333222.3A CN201810333222A CN108882005B CN 108882005 B CN108882005 B CN 108882005B CN 201810333222 A CN201810333222 A CN 201810333222A CN 108882005 B CN108882005 B CN 108882005B
Authority
CN
China
Prior art keywords
block chain
new
information
hash value
bullet screen
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
CN201810333222.3A
Other languages
English (en)
Other versions
CN108882005A (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 CN201810333222.3A priority Critical patent/CN108882005B/zh
Publication of CN108882005A publication Critical patent/CN108882005A/zh
Application granted granted Critical
Publication of CN108882005B publication Critical patent/CN108882005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种弹幕验证方法、计算机设备和存储介质,该方法包括:第一客户端设备接收服务器发送的初始区块链,根据用户的输入信息生成弹幕信息;根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和房间号信息按照初始区块链的数据结构生成新的区块链,再将新的区块链发送至服务器,通过服务器向直播房间的第二客户端设备发送新的区块链,以使得第二客户端设备通过验证新的区块链来确定是否显示弹幕信息包括的弹幕内容。可见,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端设备自行完成区块链的合法性验证,验证通过才显示弹幕内容,无需服务器参与弹幕的验证,丰富了防止刷弹幕的方式。

Description

一种弹幕验证方法、计算机设备和存储介质
技术领域
本发明属于计算机技术领域,尤其涉及一种弹幕验证方法、计算机设备和存储介质。
背景技术
目前,直播越来越受到大家的欢迎。而弹幕则是直播中非常好的互动方式。例如,主播在直播时,观众可以通过发送弹幕来发表评论,与主播进行互动。任何观众发送的弹幕在该直播间的所有用户都可以看到。
然而,有一些非法用户,利用弹幕能够被所有观众看到的特点,而不断的在直播平台通过发送弹幕来打广告,例如,通过建立一条与直播平台服务器的链接并且伪造弹幕协议来刷弹幕,并且编写自动化脚本来刷弹幕。现有的做法是在直播平台服务器进行弹幕过滤及防刷的识别,来阻挡刷弹幕的行为。
可见,现有技术对于刷弹幕的处理方式比较单一。
发明内容
本申请实施例通过提供一种弹幕验证方法、计算机设备和存储介质,解决了现有技术中,对于刷弹幕的处理方式比较单一的问题。
第一方面,本申请实施例提供了一种弹幕验证方法,所述方法应用于客户端设备,所述方法包括:
若所述第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
根据用户的输入信息生成弹幕信息;
根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;
将所述新的区块链加入到所述区块链表中;
向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。
可选的,所述初始区块链的数据结构包括区块链的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数、随机数据和区块链的Hash值,所述随机数据用于所述区块链的Hash值计算,以使得所述区块链的Hash值满足所述区块链的Hash值中前面0的个数的要求;
所述根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,包括:
将所述前一个区块链的块号加1得到所述新的区块链的块号;
将所述前一个区块链的Hash值设置为所述新的区块链中前一个区块链的Hash值;
将当前时间戳设置为所述新的区块链的时间戳;
根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到;
将所述初始区块链的Hash值中前面0的个数设置为所述新的区块链的Hash值中前面0的个数;
由所述第一客户端设备随机生成所述新的区块链的随机数据;
通过对所述新的区块链的块号、所述新的区块链中前一个区块链的Hash值、所述新的区块链的时间戳、所述新的区块链的弹幕数据、所述新的区块链的Hash值中前面0的个数和所述新的区块链的随机数据进行Hash运算得到所述新的区块链的Hash值。
可选的,所述根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,包括根据以下公式生成所述新的区块链的弹幕数据:
Newblock.data=uid+roomid+danmumessage+timestamp+verifykey;
其中,Newblock.data为所述新的区块链的弹幕数据;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;verifykey为所述弹幕信息验证字段;
可选的,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到,包括根据以下公式运算得到:
Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,Verifykey为所述弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值。
可选的,所述通过对所述新的区块链的块号、所述新的区块链中前一个区块链的Hash值、所述新的区块链的时间戳、所述新的区块链的弹幕数据、所述新的区块链的Hash值中前面0的个数和所述新的区块链的随机数据进行Hash运算得到所述新的区块链的Hash值,包括根据以下公式进行Hash运算得到所述新的区块链的Hash值:
Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,Newblock.hash为所述新的区块链的Hash值;HASH为Hash算法的计算接口;index为所述新的区块链的块号;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值;timestamp为所述新的区块链的时间戳;data为所述新的区块链的弹幕数据;zero为所述新的区块链的Hash值中前面0的个数;randdata为所述新的区块链的随机数据。
第二方面,本申请还提供了一种弹幕验证方法,其特征在于,所述方法应用于第二客户端设备,所述方法包括:
接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间;
执行下述判断:
判断从所述新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中。
可选的,判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数和随机数据进行Hash运算得到所述新的区块链的Hash值:
C_Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,C_Newblock.hash为计算得到的新的区块链的Hash值;HASH为Hash算法的计算接口;index为从所述新的区块链中读取的块号;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值;timestamp为从所述新的区块链中读取的时间戳;data为从所述新的区块链中读取的弹幕数据;zero为从所述新的区块链中读取的区块链的Hash值中前面0的个数;randdata为从所述新的区块链中读取的随机数据;
所述判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的发送弹幕者信息、房间号信息、弹幕信息、时间戳和前一个区块链的Hash值进行MD5运算得到弹幕信息验证字段:
C_Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,C_Verifykey为计算得到的弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为从所述新的区块链中读取的弹幕者信息;roomid为从所述新的区块链中读取的房间号信息;danmumessage为从所述新的区块链中读取的弹幕信息;timestamp为从所述新的区块链中读取的时间戳;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值。
第三方面,本申请还提供了一种弹幕验证方法,其特征在于,所述方法应用于服务器,所述方法包括:
若第一客户端设备连接到直播房间,向所述第一客户端设备发送初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
接收所述第一客户端设备发送的新的区块链,所述新的区块链由所述第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链数据结构生成;
向所述直播房间的第二客户端设备发送所述第一客户端设备生成的新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
若所述第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
根据用户的输入信息生成弹幕信息;
根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;
将所述新的区块链加入到所述区块链表中;
向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。
第五方面,本申请还提供了一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
若所述第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
根据用户的输入信息生成弹幕信息;
根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;
将所述新的区块链加入到所述区块链表中;
向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。
第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间;
执行下述判断:
判断从所述新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中。
第七方面,本申请提供了一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间;
执行下述判断:
判断从所述新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中。
第八方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
若第一客户端设备连接到直播房间,向所述第一客户端设备发送初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
接收所述第一客户端设备发送的新的区块链,所述新的区块链由所述第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链数据结构生成;
向所述直播房间的第二客户端设备发送所述第一客户端设备生成的新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。
第九方面,本申请提供了一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
若第一客户端设备连接到直播房间,向所述第一客户端设备发送初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
接收所述第一客户端设备发送的新的区块链,所述新的区块链由所述第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链数据结构生成;
向所述直播房间的第二客户端设备发送所述第一客户端设备生成的新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。
第十方面,本申请还提供了一种弹幕验证系统,其特征在于,所述系统包括上述的第一客户端设备、第二客户端设备和服务器。
本申请实施例中,若所述第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;根据用户的输入信息生成弹幕信息;根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;将所述新的区块链加入到所述区块链表中;向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。可见,本申请实施例提供的弹幕验证方法中,运用了区块链的技术,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端设备自行完成区块链的合法性验证,验证通过才显示弹幕内容,无需服务器参与弹幕的验证,丰富了防止刷弹幕的方式。
附图说明
图1为本申请实施例中提供的一个弹幕验证方法的流程图;
图2为本申请实施例中提供的另一个弹幕验证方法的流程图;
图3为本申请实施例中提供的另一个弹幕验证方法的流程图;
图4为本申请实施例中提供的弹幕验证方法的交互图;
图5为本申请实施例中提供的一个计算机可读存储介质的结构示意图;
图6为本申请实施例中提供的一个计算机设备的结构示意图;
图7为本申请实施例中提供的另一个计算机可读存储介质的结构示意图;
图8为本申请实施例中提供的另一个计算机设备的结构示意图;
图9为本申请实施例中提供的另一个计算机可读存储介质的结构示意图;
图10为本申请实施例中提供的另一个计算机设备的结构示意图。
具体实施方式
本申请实施例提供了一种弹幕验证方法、计算机设备和存储介质,解决了现有技术中,对于刷弹幕的处理方式比较单一的问题。本申请实施例运用了区块链的技术,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端自行完成区块链的合法性验证,验证通过才显示弹幕内容,无需服务器参与弹幕的验证,丰富了防止刷弹幕的方式。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好的理解上述技术方案,以下结合附图以及具体实施例,对上述技术方案进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。同时,为了方便介绍本发明实施例中的技术方案,下文将基于服务器,第一客户端设备,第二客户端设备组成的网络架构进行描述,并不用于限定本申请。可以理解的是,本申请实施例使用的函数名称或变量名称等,并不用于限定本申请,在一些其他可能的实现方式中,也可以使用其他命名方式。
实施例一:
请参阅图1,本实施例提供的一种弹幕验证方法,所述方法应用于客户端设备,所述方法包括以下步骤:
S101、若第一客户端设备连接到直播房间,接收服务器发送的初始区块链;
所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链。
S102、根据用户的输入信息生成弹幕信息;
S103、根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和直播房间的房间号信息按照初始区块链的数据结构生成新的区块链;
其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取。
S104、将所述新的区块链加入到区块链表中;
S105、向所述服务器发送所述新的区块链,通过服务器向所述直播房间的第二客户端设备发送新的区块链,以使得第二客户端设备通过验证新的区块链来确定是否显示弹幕信息包括的弹幕内容。
还需要说明的是,也可以先执行步骤S105,再执行S104,此处不做太多限定。
本实施例中,第一客户端设备接收服务器发送的初始区块链,根据用户的输入信息生成弹幕信息,并根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和房间号信息按照所述初始区块链的数据结构生成新的区块链,再将新的区块链发送至服务器,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。本实施例中,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端设备自行完成区块链的合法性验证,验证通过才显示弹幕内容,无需服务器参与弹幕的验证,丰富了防止刷弹幕的方式。
以上是基于第一客户端设备的弹幕验证方法,基于同一发明构思,本申请还提供了另一种弹幕验证方法,该方法应用于第二客户端设备,详见图2,下面将结合图2对实施例二进行介绍。
实施例二:
请参阅图2,本实施例提供的一种弹幕验证方法,所述方法应用于第二客户端设备,所述方法包括以下步骤:
S201、接收服务器发送的第一客户端设备生成的新的区块链;
所述第一客户端设备与所述第二客户端设备在同一个直播房间。
S202、判断从新的区块链中读取的块号是否为前一个区块链的块号加1,若否,执行步骤208返回区块错误信息,若是,执行S203;
其中,所述前一个区块链为接收所述新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中。
S203、判断从新的区块链中读取的前一个区块链的Hash值与前一个区块链的Hash值是否一致,若否,执行步骤208返回区块错误信息,若是,执行S204;
S204、判断计算得到的新的区块链的Hash值与从新的区块链中读取的新的区块链的Hash值是否一致,若否,执行步骤208返回区块错误信息,若是,执行S205;
S205、判断新的区块链是否包含弹幕信息验证字段,若否,执行步骤208返回区块错误信息,若是,执行S206;
S206、判断计算得到的弹幕信息验证字段与在新的区块链中读取的弹幕信息验证字段是否一致,若否,执行步骤208返回区块错误信息,若是,则执行步骤207。
S207、显示所述新的区块链包括的弹幕内容;
S208、返回区块错误信息;
S209、将新的区块链加入到所述区块链表中。
需要说明的是,步骤S202-S206也可以按照其他顺序执行,例如先执行S203再执行S202,或者先执行S205和S206,再执行S204,此处不做太多限定。
本实施例中,接收服务器发送的第一客户端设备生成的新的区块链;执行下述判断:判断从所述新的区块链中读取的块号是否为前一个区块链的块号加1;判断从所述新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;判断所述新的区块链是否包含弹幕信息验证字段;判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;将所述新的区块链加入到所述区块链表中。本实施例中,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端设备自行完成区块链的合法性验证,验证通过才显示弹幕内容,无需服务器参与弹幕的验证,丰富了防止刷弹幕的方式。
以上是基于第二客户端设备的弹幕验证方法,基于同一发明构思,本申请还提供了另一种弹幕验证方法,该方法应用于服务器,详见图3,下面将结合图3对实施例三进行介绍。
实施例三:
请参阅图3,本实施例提供的一种弹幕验证方法,所述方法应用于服务器,所述方法包括以下步骤:
S301、若第一客户端设备连接到直播房间,向第一客户端设备发送初始区块链;
所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链。
S302、接收第一客户端设备发送的新的区块链;
所述新的区块链由所述第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链数据结构生成。
S303、向直播房间的第二客户端设备发送第一客户端设备生成的新的区块链,以使得第二客户端设备通过验证新的区块链来确定是否显示弹幕信息包括的弹幕内容。
本实施例中,若第一客户端设备连接到直播房间,向所述第一客户端设备发送初始区块链;接收所述第一客户端设备发送的新的区块链,所述新的区块链由所述第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链数据结构生成;向所述直播房间的第二客户端设备发送所述第一客户端设备生成的新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容。可见,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端设备自行完成区块链的合法性验证,验证通过才显示弹幕内容,服务器负责发送初始区块链和新的区块链的转发工作,不需要对区块链进行验证,丰富了防止刷弹幕的方式。
本申请实施例三提供的弹幕验证方法及本申请实施例一和实施例二提供的弹幕验证方法属于同一构思,为了更好地理解本申请,下面将结合图4从第一客户端设备、第二客户端设备和服务器之间交互的角度进行详细说明,请见实施例四。
实施例四:
请参阅图4,本实施例提供的一种弹幕验证方法,所述方法包括以下步骤:
S401、若第一客户端设备连接到直播房间,接收服务器发送的初始区块链;
相应的,若第一客户端设备连接到直播房间,服务器向第一客户端设备发送初始区块链;
所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链,所述初始区块链的数据结构包括区块链的块号index、前一个区块链的Hash值previousHash、时间戳timestamp、弹幕数据data、区块链的Hash值中前面0的个数zero、随机数据randdata和区块链的Hash值hash,所述randdata用于所述区块链的Hash值计算,以使得所述区块链的Hash值满足所述zero的个数要求。
通常一个区块链必须包含一些必要的数据,一个是可以校验区块链本身的合法性,另一个也使得其不易于伪造。本实施例的区块链数据结构主要依赖于弹幕数据,弹幕数据中包含房间号、弹幕信息、发送弹幕者信息等。其中,初始区块链可以通过但不限于以下方式来实现:
Struct BlockData{
Int64index;//用来表示区块链的块号,通常从0开始递增。
String previousHash;//表示前一个区块链的Hash值。
Int64timestamp;//表示时间戳。
String data;//其中data字段根据发送弹幕者信息uid、房间号信息roomid、所述弹幕信息danmumessage、所述timestamp和弹幕信息验证字段verifykey生成。
String zero;//表示区块链的Hash值中前面0的个数。
String randdata;//此randdata则表示随机数据,用于计算区块链的Hash值,以使得区块链的Hash值满足服务器下发的0的个数。
String hash;//此Hash值则表示当前这个区块链的Hash值。
}
完成初始区块链的设计后,客户端设备就可以按照初始区块链的数据结构生成和验证新的区块链,可以理解的是,为了方便介绍,本实施例中的第一客户端设备用于生成区块链,第二客户端设备用于验证区块链,实际实现中,每个客户端设备既负责生成该客户端设备的区块链,也负责验证其他客户端设备的区块链。
S402、第一客户端设备根据用户的输入信息生成弹幕信息;
弹幕信息,也就是弹幕协议,用于通知其他客户端设备弹幕内容,弹幕协议的时间戳、弹幕的样式颜色等。当用户需要发送弹幕时,输入弹幕内容、样式颜色等信息,第一客户端设备根据用户的输入信息生成弹幕信息danmumessage。
S403、第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和直播房间的房间号信息按照初始区块链的数据结构生成新的区块链;
其中,第一客户端设备存有一个区块链表,该区块链表存储了所有合法的区块链,包括第一客户端设备和其他客户端生成的区块链,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,即区块链表中最新加入的一个区块链;所述发送弹幕者信息包括所述用户的唯一身份证明uid,所述房间号信息roomid通过向所述服务器发送获取房间号的协议获取。
举一个例子,假设上一个区块链的名字是prevblock,新生成的区块链的名字是newblock,所述根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,包括:
将所述前一个区块链的块号index加1得到所述新的区块链的块号index,具体的实现包括:Newblock.index=prevblock.index+1;
将所述前一个区块链的Hash值prevblock.hash设置为所述新的区块链中前一个区块链的Hash值Newblock.previousHash,具体的实现包括:Newblock.previousHash=prevblock.hash;
将当前时间戳设置为所述新的区块链的时间戳timestamp,具体的实现包括:Newblock.timestamp=time();
根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,具体实现包括:
Newblock.data=uid+roomid+danmumessage+timestamp+verifykey;
其中,Newblock.data为所述新的区块链的data;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;verifykey为所述弹幕信息验证字段;
另外,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到,具体实现如下:
Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,Verifykey为所述弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值。
可见验证字段verifykey是由所述uid、所述roomid、所述danmumessage、所述timestamp和所述previousHash进行MD5运算得到。只有这些信息都正确的才能够计算出正确的验证字段Verifykey。同时,由于弹幕数据data的计算中包含了uid、danmumessage、roomid和timestamp,而Verifykey的计算也包含了这些信息,从而对这些信息进行了二次验证。
加入时间戳timestamp可以使得验证字段随着时间而不断变化,避免固定不变。
加入上一个区块的hash值previousHash可以在使每个区块链进行关联,只有具有正确的上一个区块链的数据,才能计算出正确的验证字段。
将所述初始区块链的Hash值中前面0的个数设置为所述新的区块链的Hash值中前面0的个数,即新的区块链的zero直接设置为初始区块链中zero的值;
新的区块链的随机数据randdata由所述第一客户端随机生成,用于新的区块链的Hash值计算,以使得新的区块链的Hash值满足0的个数要求;
通过对新的区块链的块号、新的区块链中前一个区块链的Hash值、新的区块链的时间戳、新的区块链的弹幕数据、新的区块链的Hash值中前面0的个数和新的区块链的随机数据进行Hash运算得到新的区块链的Hash值,包括根据以下公式进行Hash运算得到所述新的区块链的Hash值:
Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,Newblock.hash为所述新的区块链的Hash值;HASH为Hash算法的计算接口,其中使用的Hash算法包括SHA-256算法,当然也可以使用其他Hash算法;index为所述新的区块链的块号;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值;timestamp为所述新的区块链的时间戳;data为所述新的区块链的弹幕数据;zero为所述新的区块链的Hash值中前面0的个数;randdata为所述新的区块链生成的随机数据。
至此,第一客户端生成了新的区块链,还需要说明的是,如果该新的区块链的前一个区块链为初始区块链,则前一个区块链的块号index可以设置为0,前一个区块链的Hash值previousHash也可以设置为0。
S404、第一客户端设备将新的区块链加入到区块链表中;
第一客户端设备将新的区块链加入到区块链表中,对区块链表进行维护更新。
S405、第一客户端设备向服务器发送新的区块链;
相应的,服务器接收第一客户端设备发送的新的区块链。
需要说明的是,步骤S404和步骤S405之间不存在执行的先后性,也可以先执行S405,再执行S404,此处不做太多限定。
S406、第二客户端设备接收服务器发送的第一客户端设备生成的新的区块链;
相应的,服务器向第二客户端设备发送第一客户端设备生成的新的区块链。
需要说明的是,第一客户端设备和第二客户端设备在同一个直播房间。
S407、第二客户端设备判断从新的区块链中读取的块号是否为前一个区块链的块号加1,若否,返回区块错误信息,若是,执行下一个判断;
其中,第二客户端设备存有一个区块链表,该区块链表存储了所有的合法区块链,包括第二客户端设备生成的和其他客户端生成的,所述前一个区块链为接收所述新的区块链之前所述第二客户端设备最近一个获得的区块链,即区块链表中最新加入的一个区块链。
若否,具体为Newblock.index!=prevblock.index+1,则返回区块错误信息,表明该区块链是非法区块链,将做丢弃处理,若是,执行下一个判断,即执行步骤S408。
可以理解的是,第二客户端设备与第一客户端设备在同一个直播房间,则在第二客户端设备连接到直播房间后,同样也收到了服务器发送的初始区块链,所以第二客户端设备已经明确了区块链的数据结构,可以进行区块链的验证。
S408、第二客户端设备判断从新的区块链中读取的前一个区块链的Hash值与前一个区块链的Hash值是否一致,若否,返回区块错误信息,若是,执行下一个判断;
若否,具体为Newblock.previousHash!=prevblock.hash,则返回区块错误信息,表明该区块链是非法区块链,将做丢弃处理,若是,执行下一个判断,即执行步骤S409。
S409、第二客户端设备判断计算得到的新的区块链的Hash值与从新的区块链中读取的新的区块链的Hash值是否一致,若否,返回区块错误信息,若是,执行下一个判断;
其中,判断计算得到的新的区块链的Hash值与从新的区块链中读取的新的区块链的Hash值是否一致之前,还包括:
根据以下公式对从所述新的区块链中读取的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数和随机数据进行Hash运算得到所述新的区块链的Hash值:
C_Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,C_Newblock.hash为计算得到的新的区块链的Hash值;HASH为Hash算法的计算接口;index为从所述新的区块链中读取的块号;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值;timestamp为从所述新的区块链中读取的时间戳;data为从所述新的区块链中读取的弹幕数据;zero为从所述新的区块链中读取的区块链的Hash值中前面0的个数;randdata为从所述新的区块链中读取的随机数据;
判断计算得到的新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致,若否,返回区块错误信息,表明该区块链是非法区块链,将做丢弃处理,若是,执行下一个判断,即执行步骤S410。
S410、第二客户端设备判断新的区块链是否包含弹幕信息验证字段,若否,返回区块错误信息,若是,执行下一个判断;
本实施例中,先判断是否存在弹幕信息验证字段verifykey,若否,返回区块错误信息,表明该区块链是非法区块链,将做丢弃处理,若是,执行下一个判断,进一步验证弹幕信息验证字段verifykey的合法性,即执行步骤S411。
S411、第二客户端设备判断计算得到的弹幕信息验证字段与在新的区块链中读取的弹幕信息验证字段是否一致,若否,返回区块错误信息,若是,显示新的区块链包括的弹幕内容;
其中,判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的发送弹幕者信息、房间号信息、弹幕信息、时间戳和前一个区块链的Hash值进行MD5运算得到弹幕信息验证字段::
C_Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,C_Verifykey为计算得到的弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为从所述新的区块链中读取的弹幕者信息;roomid为从所述新的区块链中读取的房间号信息;danmumessage为从所述新的区块链中读取的弹幕信息;timestamp为从所述新的区块链中读取的时间戳;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值。
判断计算得到的弹幕信息验证字段verifykey与在所述新的区块链中读取的弹幕信息验证字段verifykey是否一致,若否,返回区块错误信息,表明该区块链是非法区块链,将做丢弃处理,若是,第二客户端设备在用户弹幕显示区域显示新的区块链包括的弹幕内容。
需要说明的是,若前一个区块链为初始区块链,则前一个区块链的块号可以设置为0,前一个区块链的Hash值也可以设置为0。
还需要说明的是,在一些其他的实现方式中,第二客户端设备的判断步骤也可以采用其他顺序进行,例如先验证前一个区块链的Hash值,再验证块号index等,又或者先验证是否存在弹幕信息的验证字段verifykey,再验证新区块链的Hash值等,可以逐个条件进行判断,有一个条件不符合则终止判断,也可以全部条件都进行判断,再根据所有的判断结果进行验证,此处不做太多限定。
S412、将新的区块链加入到区块链表中。
本申请实施例中,若所述第一客户端设备连接到直播房间,第一客户端设备接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;第一客户端设备根据用户的输入信息生成弹幕信息;第一客户端设备根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链;将所述新的区块链加入到区块链表中;第一客户端设备向所述服务器发送所述新的区块链;再由服务器向第二客户端设备发送所述第一客户端设备生成的新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容;第二客户端设备执行下述判断:判断从所述新的区块链中读取的块号是否为前一个区块链的块号加1;判断从所述新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;判断所述新的区块链是否包含弹幕信息验证字段;判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容,并将所述新的区块链加入到区块链表中。可见,本申请实施例运用了区块链的技术,每一个弹幕信息对应一个区块链,每一个区块链都与上一个区块链相关联,而且由客户端自行完成区块链的合法性验证,验证通过才显示弹幕内容,无需服务器参与弹幕的验证,丰富了防止刷弹幕的方式。
实施例五:
本实施例提供了一种计算机可读存储介质500,所述计算机可读存储介质500存储有计算机程序511,在具体实施过程中,该计算机程序511被处理器执行时,可以实现上述实施例中由第一客户端设备执行的所有步骤,此处不再赘述。
基于同一发明构思,本申请还提供了一种计算机设备,详见图6,下面将结合图6对实施例六进行介绍。
实施例六:
本申请提供了一种计算机设备600,包括处理器620、存储器610以及存储在存储器610上并可在处理器620上运行的计算机程序611,在具体实施过程中,该计算机设备600可以通过处理器620实现上述实施例中由第一客户端设备执行的所有步骤,此处不再赘述。
基于同一发明构思,本申请提供了一种计算机可读存储介质,详见图7,下面将结合图7对实施例七进行介绍。
实施例七:
本实施例提供了一种计算机可读存储介质700,所述计算机可读存储介质700存储有计算机程序711,在具体实施过程中,该计算机程序711被处理器执行时,可以实现上述实施例中由第二客户端设备执行的所有步骤,此处不再赘述。
基于同一发明构思,本申请还提供了一种计算机设备,详见图8,下面将结合图8对实施例八进行介绍。
实施例八:
本申请提供了一种计算机设备800,包括处理器820、存储器810以及存储在存储器810上并可在处理器820上运行的计算机程序811,在具体实施过程中,该计算机设备800可以通过处理器820实现上述实施例中由第二客户端设备执行的所有步骤,此处不再赘述。
基于同一发明构思,本申请提供了一种计算机可读存储介质,详见图9,下面将结合图9对实施例九进行介绍。
实施例九:
本实施例提供了一种计算机可读存储介质900,所述计算机可读存储介质900存储有计算机程序911,在具体实施过程中,该计算机程序911被处理器执行时,可以实现上述实施例中由服务器设备执行的所有步骤,此处不再赘述。
基于同一发明构思,本申请还提供了一种计算机设备,详见图10,下面将结合图10对实施例十进行介绍。
实施例十:
本申请提供了一种计算机设备1000,包括处理器1020、存储器1010以及存储在存储器1010上并可在处理器1020上运行的计算机程序1011,在具体实施过程中,该计算机设备1000可以通过处理器1020实现上述实施例中由服务器执行的所有步骤,此处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (7)

1.一种弹幕验证方法,其特征在于,所述方法应用于第一客户端设备,所述方法包括:
若所述第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
根据用户的输入信息生成弹幕信息;
根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;
将所述新的区块链加入到所述区块链表中;
向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容;
其中,所述第二客户端设备用于接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间,所述第二客户端设备用于执行下述判断:
判断从所述服务器发送的新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述服务器发送的新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述服务器发送的新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述服务器发送的新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中;
其中,所述初始区块链的数据结构包括区块链的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数、随机数据和区块链的Hash值,所述随机数据用于所述区块链的Hash值计算,以使得所述区块链的Hash值满足所述区块链的Hash值中前面0的个数的要求;
所述根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,包括:
将所述前一个区块链的块号加1得到所述新的区块链的块号;
将所述前一个区块链的Hash值设置为所述新的区块链中前一个区块链的Hash值;
将当前时间戳设置为所述新的区块链的时间戳;
根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到;
将所述初始区块链的Hash值中前面0的个数设置为所述新的区块链的Hash值中前面0的个数;
由所述第一客户端设备随机生成所述新的区块链的随机数据;
通过对所述新的区块链的块号、所述新的区块链中前一个区块链的Hash值、所述新的区块链的时间戳、所述新的区块链的弹幕数据、所述新的区块链的Hash值中前面0的个数和所述新的区块链的随机数据进行Hash运算得到所述新的区块链的Hash值;
其中,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到,包括根据以下公式运算得到:
Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,Verifykey为所述弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值。
2.如权利要求1所述的方法,其特征在于,所述根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,包括根据以下公式生成所述新的区块链的弹幕数据:
Newblock.data=uid+roomid+danmumessage+timestamp+verifykey;
其中,Newblock.data为所述新的区块链的弹幕数据;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;verifykey为所述弹幕信息验证字段。
3.如权利要求1-2任一项所述的方法,其特征在于,所述通过对所述新的区块链的块号、所述新的区块链中前一个区块链的Hash值、所述新的区块链的时间戳、所述新的区块链的弹幕数据、所述新的区块链的Hash值中前面0的个数和所述新的区块链的随机数据进行Hash运算得到所述新的区块链的Hash值,包括根据以下公式进行Hash运算得到所述新的区块链的Hash值:
Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,Newblock.hash为所述新的区块链的Hash值;HASH为Hash算法的计算接口;index为所述新的区块链的块号;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值;timestamp为所述新的区块链的时间戳;data为所述新的区块链的弹幕数据;zero为所述新的区块链的Hash值中前面0的个数;randdata为所述新的区块链的随机数据。
4.一种弹幕验证方法,其特征在于,所述方法应用于第二客户端设备,所述方法包括:
接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间;
执行下述判断:
判断从所述新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中;
其中,判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数和随机数据进行Hash运算得到所述新的区块链的Hash值:
C_Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,C_Newblock.hash为计算得到的新的区块链的Hash值;HASH为Hash算法的计算接口;index为从所述新的区块链中读取的块号;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值;timestamp为从所述新的区块链中读取的时间戳;data为从所述新的区块链中读取的弹幕数据;zero为从所述新的区块链中读取的区块链的Hash值中前面0的个数;randdata为从所述新的区块链中读取的随机数据;
所述判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的发送弹幕者信息、房间号信息、弹幕信息、时间戳和前一个区块链的Hash值进行MD5运算得到弹幕信息验证字段:
C_Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,C_Verifykey为计算得到的弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为从所述新的区块链中读取的弹幕者信息;roomid为从所述新的区块链中读取的房间号信息;danmumessage为从所述新的区块链中读取的弹幕信息;timestamp为从所述新的区块链中读取的时间戳;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值。
5.一种弹幕验证方法,其特征在于,所述方法应用于服务器,所述方法包括:
若第一客户端设备连接到直播房间,向所述第一客户端设备发送初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
接收所述第一客户端设备发送的新的区块链,所述新的区块链由所述第一客户端设备根据弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链数据结构生成;
向所述直播房间的第二客户端设备发送所述第一客户端设备生成的新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容;
其中,所述第二客户端设备用于执行下述判断:
判断从所述服务器发送的新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述服务器发送的新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述服务器发送的新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述服务器发送的新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中;
其中,判断计算得到的所述新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数和随机数据进行Hash运算得到所述新的区块链的Hash值:
C_Newblock.hash=HASH(index+Newblock.previousHash+timestamp+data+zero+randdata);
其中,C_Newblock.hash为计算得到的新的区块链的Hash值;HASH为Hash算法的计算接口;index为从所述新的区块链中读取的块号;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值;timestamp为从所述新的区块链中读取的时间戳;data为从所述新的区块链中读取的弹幕数据;zero为从所述新的区块链中读取的区块链的Hash值中前面0的个数;randdata为从所述新的区块链中读取的随机数据;
所述判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致之前还包括:
根据以下公式对从所述新的区块链中读取的发送弹幕者信息、房间号信息、弹幕信息、时间戳和前一个区块链的Hash值进行MD5运算得到弹幕信息验证字段:
C_Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,C_Verifykey为计算得到的弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为从所述新的区块链中读取的弹幕者信息;roomid为从所述新的区块链中读取的房间号信息;danmumessage为从所述新的区块链中读取的弹幕信息;timestamp为从所述新的区块链中读取的时间戳;Newblock.previousHash为从所述新的区块链中读取的前一个区块链的Hash值。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
若第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
根据用户的输入信息生成弹幕信息;
根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;
将所述新的区块链加入到所述区块链表中;
向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容;
其中,所述第二客户端设备用于接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间,所述第二客户端设备用于执行下述判断:
判断从所述服务器发送的新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述服务器发送的新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述服务器发送的新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述服务器发送的新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中;
其中,所述初始区块链的数据结构包括区块链的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数、随机数据和区块链的Hash值,所述随机数据用于所述区块链的Hash值计算,以使得所述区块链的Hash值满足所述区块链的Hash值中前面0的个数的要求;
所述根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,包括:
将所述前一个区块链的块号加1得到所述新的区块链的块号;
将所述前一个区块链的Hash值设置为所述新的区块链中前一个区块链的Hash值;
将当前时间戳设置为所述新的区块链的时间戳;
根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到;
将所述初始区块链的Hash值中前面0的个数设置为所述新的区块链的Hash值中前面0的个数;
由所述第一客户端设备随机生成所述新的区块链的随机数据;
通过对所述新的区块链的块号、所述新的区块链中前一个区块链的Hash值、所述新的区块链的时间戳、所述新的区块链的弹幕数据、所述新的区块链的Hash值中前面0的个数和所述新的区块链的随机数据进行Hash运算得到所述新的区块链的Hash值;
其中,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到,包括根据以下公式运算得到:
Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,Verifykey为所述弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值。
7.一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
若第一客户端设备连接到直播房间,接收服务器发送的初始区块链,所述初始区块链包括数据结构,所述数据结构用于通知所述第一客户端设备按照所述数据结构生成新的区块链;
根据用户的输入信息生成弹幕信息;
根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,其中,所述前一个区块链为生成所述新的区块链之前所述第一客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第一客户端设备的区块链表中,所述发送弹幕者信息包括所述用户的唯一身份证明,所述房间号信息通过向所述服务器发送获取房间号的协议获取;
将所述新的区块链加入到所述区块链表中;
向所述服务器发送所述新的区块链,通过所述服务器向所述直播房间的第二客户端设备发送所述新的区块链,以使得所述第二客户端设备通过验证所述新的区块链来确定是否显示所述弹幕信息包括的弹幕内容;
其中,所述第二客户端设备用于接收服务器发送的第一客户端设备生成的新的区块链,所述第一客户端设备与所述第二客户端设备在同一个直播房间,所述第二客户端设备用于执行下述判断:
判断从所述服务器发送的新的区块链中读取的块号是否为前一个区块链的块号加1,其中,所述前一个区块链为接收所述服务器发送的新的区块链之前所述第二客户端设备最近一个获得的区块链,所述前一个区块链存储于所述第二客户端设备的区块链表中;
判断从所述服务器发送的新的区块链中读取的前一个区块链的Hash值与所述前一个区块链的Hash值是否一致;
判断计算得到的所述服务器发送的新的区块链的Hash值与从所述新的区块链中读取的新的区块链的Hash值是否一致;
判断所述新的区块链是否包含弹幕信息验证字段;
判断计算得到的弹幕信息验证字段与在所述新的区块链中读取的弹幕信息验证字段是否一致;
如果上述判断中的任一判断结果为否则返回区块错误信息,如果上述判断结果均为是,则显示所述新的区块链包括的弹幕内容;
将所述新的区块链加入到所述区块链表中;
其中,所述初始区块链的数据结构包括区块链的块号、前一个区块链的Hash值、时间戳、弹幕数据、区块链的Hash值中前面0的个数、随机数据和区块链的Hash值,所述随机数据用于所述区块链的Hash值计算,以使得所述区块链的Hash值满足所述区块链的Hash值中前面0的个数的要求;
所述根据所述弹幕信息、前一个区块链的块号和Hash值、发送弹幕者信息和所述直播房间的房间号信息按照所述初始区块链的数据结构生成新的区块链,包括:
将所述前一个区块链的块号加1得到所述新的区块链的块号;
将所述前一个区块链的Hash值设置为所述新的区块链中前一个区块链的Hash值;
将当前时间戳设置为所述新的区块链的时间戳;
根据所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和弹幕信息验证字段生成所述新的区块链的弹幕数据,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到;
将所述初始区块链的Hash值中前面0的个数设置为所述新的区块链的Hash值中前面0的个数;
由所述第一客户端设备随机生成所述新的区块链的随机数据;
通过对所述新的区块链的块号、所述新的区块链中前一个区块链的Hash值、所述新的区块链的时间戳、所述新的区块链的弹幕数据、所述新的区块链的Hash值中前面0的个数和所述新的区块链的随机数据进行Hash运算得到所述新的区块链的Hash值;
其中,所述弹幕信息验证字段通过对所述发送弹幕者信息、所述房间号信息、所述弹幕信息、所述新的区块链的时间戳和所述新的区块链中前一个区块链的Hash值进行MD5运算得到,包括根据以下公式运算得到:
Verifykey=md5.Create(uid+roomid+danmumessage+timestamp+Newblock.previousHash);
其中,Verifykey为所述弹幕信息验证字段;md5.Create为Hash算法md5的计算接口;uid为所述弹幕者信息;roomid为所述房间号信息;danmumessage为所述弹幕信息;timestamp为所述新的区块链的时间戳;Newblock.previousHash为所述新的区块链中前一个区块链的Hash值。
CN201810333222.3A 2018-04-13 2018-04-13 一种弹幕验证方法、计算机设备和存储介质 Active CN108882005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810333222.3A CN108882005B (zh) 2018-04-13 2018-04-13 一种弹幕验证方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810333222.3A CN108882005B (zh) 2018-04-13 2018-04-13 一种弹幕验证方法、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN108882005A CN108882005A (zh) 2018-11-23
CN108882005B true CN108882005B (zh) 2021-04-27

Family

ID=64326341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810333222.3A Active CN108882005B (zh) 2018-04-13 2018-04-13 一种弹幕验证方法、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN108882005B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111741320A (zh) * 2020-06-28 2020-10-02 祁轲 一种区块链人工智能大数据分析处理系统及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170149560A1 (en) * 2012-02-02 2017-05-25 Netspective Communications Llc Digital blockchain authentication
CN106303715A (zh) * 2016-08-25 2017-01-04 乐视控股(北京)有限公司 弹幕存储处理方法及装置
CN106385601B (zh) * 2016-09-14 2019-04-05 武汉斗鱼网络科技有限公司 基于多协议验证的同时观看直播人数的统计方法及系统
CN106534160B (zh) * 2016-12-02 2020-02-21 江苏通付盾科技有限公司 基于区块链的身份认证方法及系统
CN107679149A (zh) * 2017-09-26 2018-02-09 武汉斗鱼网络科技有限公司 一种数据处理方法及服务器
CN107454110A (zh) * 2017-09-26 2017-12-08 武汉斗鱼网络科技有限公司 一种数据校验方法及服务器
CN107426253B (zh) * 2017-09-26 2022-06-21 武汉斗鱼网络科技有限公司 一种数据校验方法及客户端

Also Published As

Publication number Publication date
CN108882005A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108667632B (zh) 基于区块链的信用记录共享方法及装置、电子设备
CN110830735B (zh) 一种视频生成方法、装置、计算机设备和存储介质
CN107454441A (zh) 一种检测直播间刷人气行为的方法、及直播平台服务器
EP3779760B1 (en) Blockchain-based data processing method and apparatus, and electronic device
CN108848148B (zh) 基于区块链的交易信息确认方法及装置
CN107465660B (zh) 一种视频流地址鉴权方法及装置
CN109615370A (zh) 对象选取方法及装置、电子设备
CN107392618A (zh) 植入智能合约的方法和设备
CN104091140B (zh) 一种信息处理方法及电子设备
US20190342382A1 (en) Method and electronic device for supporting artificial participation in decision-making of blockchain
CN111711655A (zh) 一种基于区块链的电子数据存证方法、系统、存储介质及终端
CN107563798A (zh) 中奖数据处理方法及装置
CN110990790B (zh) 一种数据处理方法及设备
CN108882005B (zh) 一种弹幕验证方法、计算机设备和存储介质
CN108924089B (zh) 一种客户端设备识别方法、装置及客户端设备
CN111787034A (zh) 区块生成方法、同步方法、装置、区块链系统和存储介质
CN105184641A (zh) 交互处理方法及装置
CN110300118A (zh) 流媒体处理方法、装置及存储介质
CN107563751A (zh) 用户认证方法、装置、计算设备及计算机存储介质
CN105338004B (zh) 云环境下低性能设备适用的具有隐私保护的公开审计方法
CN109560916A (zh) 一种电子发票的发放方法、领用方法及相关装置
CN113822436A (zh) 联邦学习模型训练的通信方法、装置和电子设备
CN111282280A (zh) 棋牌游戏中的数据处理方法、装置及电子设备
CN111106938A (zh) 信息处理方法、系统及设备
CN104765818A (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