一种基于区块链的电子数据存证方法、系统、存储介质及终端与流程

文档序号:22334579发布日期:2020-09-25 18:07阅读:107来源:国知局
一种基于区块链的电子数据存证方法、系统、存储介质及终端与流程

本发明涉及区块链技术领域,特别涉及一种基于区块链的电子数据存证方法、系统、存储介质及终端。



背景技术:

随着信息现代化的不断发展,信息数据安全成为了每个人关心的问题,在信息数据安全保障中,区块链技术无疑成为了首选,区块链技术是利用链式数据结构来验证与存储数据、利用分布式节点共识算法来生成核更新数据、利用密码学的方式保障数据传输和访问的安全。

目前在利用区块链技术进行数据存证中,首先需要自建区块链底层平台,或者加入由若干家厂商组建联盟链,在此基础上对用户上传的数据做加密存证,最终用户数据最终被存入到自有“区块链”或联盟链节点中。由于自建区块链网络或多家联合组建联盟链难以从实践上杜绝联盟“作恶”的可能性,同时使用成本较高,不适用于低预算客户和低价值数据存证的场景,当用户将数据上传到平台在传输、存储和调试过程中,同时增加了数据泄露的风险等级。



技术实现要素:

本申请实施例提供了一种基于区块链的电子数据存证方法、系统、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

第一方面,本申请实施例提供了一种基于区块链的电子数据存证方法,应用于服务端,所述方法包括:

接收来自客户端发送的存证信息进行汇总,生成存证信息集合;

将所述存证信息集合中各存证信息组合生成存证信息的默克尔树;

计算所述存证信息的默克尔树对应的根散列值;

根据所述根散列值生成交易数据并将所述交易数据广播至区块链。

可选的,所述根据所述根散列值生成交易数据并将所述交易数据广播至区块链之后,还包括:

当所述交易数据成功广播至区块链时,生成广播成功信息并发送至客户端。

第二方面,本申请实施例提供了一种基于区块链的电子数据存证方法,应用于客户端,所述方法包括:

接收输入的电子数据存证指令,向服务端发送电子数据存证请求并接收来自服务端返回的随机字符串;

获取电子数据;

将所述随机字符串和电子数据拼接后生成拼接存证数据;

计算所述拼接存证数据对应的散列值并将所述散列值作为存证信息发送至服务端。

可选的,所述计算所述拼接存证数据对应的散列值并将所述散列值作为存证信息发送至服务端之后,还包括:

接收广播成功信息,发送参数信息下载指令至服务端;

将所述电子数据的参数信息下载后进行参数组合,生成存证凭证。

第三方面,本申请实施例提供了一种基于区块链的电子数据存证方法,所述方法包括:

客户端接收电子数据存证请求,向服务端发送电子数据存证请求;

服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端;

客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端;

服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。

可选的,所述生成交易数据并将所述交易数据广播至区块链之后,还包括:

根据所述交易数据广播成功,服务端生成广播成功信息发送至客户端;

客户端接收所述广播成功信息,发送参数信息下载指令至服务端;

服务端下载所述电子数据的参数信息下载并发送给客户端;

客户端对所述参数信息进行参数组合,生成存证凭证;其中,所述存证凭证由服务端随机字符串、存证数据散列值、存证业务的默克尔树、区块链编号和交易编号组成。

可选的,所述生成存证凭证之后,还包括:

采用散列算法计算所述存证凭证中的默克尔树根节点的散列值和区块链中保存的默克尔树根节点的散列值是否一致,检验默克尔树的完整性;

采用散列算法计算所述存证凭证中的随机值与数据拼接后的新数据的散列值;

根据区块链中保存的默克尔树中存证凭证的随机值对应的散列值与所述新数据的散列值是否一致,检验数据完整性。

第四方面,本申请实施例提供了一种基于区块链的电子数据存证系统,所述系统包括:

请求发送模块,用于客户端接收电子数据存证请求,向服务端发送电子数据存证请求;

随机字符串生成模块,用于服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端;

参数发送模块,用于客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端;

数据广播模块,用于服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。

第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第六方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请实施例提供的技术方案可以包括以下有益效果:

在本申请实施例中,系统首先通过客户端接收电子数据存证请求,向服务端发送电子数据存证请求,再通过服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端,然后通过客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端,最后通过服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。由于本申请利用现实中已有成熟区块链网络提供数据存证服务,通过使用现实中最大规模的区块链网络(规模大意味着更安全),可以充分利用区块链的数据防篡改能力,在不需要自建区块链网络条件下,通过对存证请求进行组织汇总达到降低用户的存证成本,同时降低了数据泄露的风险等级。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本申请实施例提供的一种基于区块链的电子数据存证方法的流程示意图;

图2是本申请实施例提供的一种基于区块链的电子数据存证系统的系统架构示意图;

图3是本申请实施例提供的一种时间段内接收到的存证信息构成的默克尔树示意图;

图4是本申请实施例提供的一种存证凭证的存证格式示意图;

图5是本申请实施例提供的一种存证凭证的存证数据结构的结构示意图;

图6是本申请实施例提供的一种基于区块链的电子数据存证系统的系统示意图;

图7是本申请实施例提供的一种终端的结构示意图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

到目前为止,对于基于区块链的电子数据存证,首先需要自建区块链底层平台,或者加入由若干家厂商组建联盟链,在此基础上对用户上传的数据做加密存证,最终用户数据最终被存入到自有“区块链”或联盟链节点中。由于自建区块链网络或多家联合组建联盟链难以从实践上杜绝联盟“作恶”的可能性,同时使用成本较高,不适用于低预算客户和低价值数据存证的场景,当用户将数据上传到平台在传输、存储和调试过程中,同时增加了数据泄露的风险等级。为此,本申请提供了一种基于区块链的电子数据存证方法、系统、存储介质及终端,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,由于本申请利用现实中已有成熟区块链网络提供数据存证服务,通过使用现实中最大规模的区块链网络(规模大意味着更安全),可以充分利用区块链的数据防篡改能力,在不需要自建区块链网络条件下,通过对存证请求进行组织汇总达到降低用户的存证成本,同时降低了数据泄露的风险等级,下面采用示例性的实施例进行详细说明。

下面将结合附图1-附图5,对本申请实施例提供的基于区块链的电子数据存证方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的基于区块链的电子数据存证系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的基于区块链的电子数据存证系统对应的客户端可以为用户终端,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户系统、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、5g网络或未来演进网络中的终端设备等。

请参见图1,为本申请实施例提供了一种基于区块链的电子数据存证方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:

s101,客户端接收电子数据存证请求,向服务端发送电子数据存证请求;

其中,客户端和服务端构成了本方案的电子数据存证系统,电子存证系统例如图2所示,该系统包括服务端和客户端构成(不包括区块链网络),服务端由区块链网络对接服务和代理子服务构成,区块链网络仅用来接收服务端发送的交易数据。电子数据存证是电子数据进行固化保全,使电子证据能符合法律采信要求,即让电子数据证据化。

通常,存证系统的客户端就是用户终端,服务端由区块链网络对接服务以及一个或多个代理子服务组成。其中区块链对接服务,一方面将代理子服务收集的用户数据的存证信息,组成一个默克尔树(merkeltree),然后计算出该merkeltree的根散列值,另一方面,它相当于区块链网络的一个客户端,将计算出的根散列值存入交易数据并向区块链广播这条交易数据,但不参与竞争记账权(即挖矿)。代理子服务的功能是响应客户端的存证请求,将一段时间内的存证信息上传到区块链对接服务。

因此整个服务端实现了这些功能:汇总存证信息,计算一批存证信息的merkeltree,促成存证业务成功保存到区块链中。

在本申请实施例中,当有存证请求时,客户端通过有线或者无线的方式向服务端中的代理子服务发起一个存证申请。

在一种可能的实现方式中,用户首先通过客户端(用户终端)触发电子数据存证请求,当请求触发后,用户终端生成存证指令通过有线或者无线的方式发送至服务端。

例如,用户小明想针对用户终端保存的文件进行电子数据存证时,小明首先在用户终端选择指定的电子文件,然后通过用户终端触发针对该电子文件的电子存证请求,当用户终端检测到存证请求触发后,用户终端生成电子存证请求指令通过有线或者无线的方式发送至服务端。

s102,服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端;

其中,随机字符串是服务端通过任意字符进行组合生成。

在本申请实施例中,服务端的代理子服务接收电子存证请求,然后通过内部预先设定的程序获取多个字符进行组合,生成随机字符串通过有线或者无线的方式发送至用户终端。

在一种可能的实现方式中,当服务端的代理子服务接收到来自用户终端的电子数据存证请求指令时,首先获取预先设定的随机字符串生成程序,然后根据预先设定的随机字符串生成程序获取多个字符串进行随机组合,组合完成后生成随机字符串,最后将生成的随机字符串通过有线或者无线的方式发送至用户终端。

s103,客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端;

在一种可能的实现方式中,用户终端接收服务端发送的随机字符串,当接收到随机字符串之后,通过客户端的字符串拼接程序首先获取保存的电子数据,然后将电子数据和接收的随机字符串进行拼接,拼接完成后生成拼接数据,用户终端再根据生成的拼接数据计算拼接数据的散列值生成该电子数据的存证参数集合,最后将该电子数据的存证参数集合通过无线或者有线的方式发送至服务端。

s104,服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。

在一种可能的实现方式中,服务端的代理子服务接收一段时间内的存证信息,再将一段时间内的存证信息上传到服务端的区块链对接服务,区块链对接服务接收到一段时间内的存证信息(即服务端生成的随机值和据此计算出的散列值)后,将一段时间内的存证信息组成一个默克尔树(merkeltree)的叶子节点,例如图3所示,然后通过预先设定的算法计算出的该merkeltree的根散列值,最后将该merkeltree的根散列值存入交易数据并向区块链广播这条交易数据。其中这个merkeltree作为存证凭证的一部分,最终由用户自己保存。

进一步地,当交易数据广播成功后,首先服务端生成广播成功信息发送至客户端,然后客户端接收广播成功信息,发送参数信息下载指令至服务端,服务端下载电子数据的参数信息并发送给客户端,最后客户端对参数信息进行参数组合,生成存证凭证。其中,存证凭证由服务端随机字符串、存证数据散列值、存证业务的默克尔树、区块链编号和交易编号组成例如图4和图5所示。

进一步地,当进行数据完整性校验时,首先采用散列算法计算存证凭证中的随机值与数据拼接后的新数据的散列值,然后根据区块链中保存的默克尔树中存证凭证的随机值对应的散列值与所述新数据的散列值是否一致,检验数据完整性。

具体的,图4和图5展示的是存证信息的主要参数,以及数据凭证在用户端的保存格式。客户端向服务端发起存证请求时,服务端返回给客户端一个随机值(形式可以采用随机字符串),客户端在内存中将获取的随机值和存证数据拼接,对拼接的结果计算散列值(用户可以自己从公认的散列算法中选择一种进行计算),这个散列值将被发往服务端。在服务端成功向区块链存入交易信息后,客户端从服务端下载本批次存证的整个merkeltree数据,以及区块编号,交易编号等。客户端可以采用图5中描述的结构,将存证凭证保存成文件。

当需要检验用户数据完整性的时候,需要分别检验默克尔树的完整性和数据的完整性。在检验默克尔树完整性时,首先根据凭证中的区块链参数,从区块链公开的交易信息中,查找当初保存的merkeltree的根节点的散列值,然后根据凭证中的merkeltree,以及服务公布的散列算法可以检验merkeltree的完整性,也就是判断计算出的根散列值是否和区块链中保存的一致,如果一致,则说明merkeltree未被篡改。最后检验数据的完整性,在检验数据完整性时,先采用凭证中记录的用户选择的散列算法,通过选择的散列算法计算凭证中的随机值与数据拼接后的新数据的散列值,如果得到的结果与merkeltree中该随机值对应的散列值一致,则可以说明文件完整未被篡改。

在本申请实施例中,系统首先通过客户端接收电子数据存证请求,向服务端发送电子数据存证请求,再通过服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端,然后通过客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端,最后通过服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。由于本申请利用现实中已有成熟区块链网络提供数据存证服务,通过使用现实中最大规模的区块链网络(规模大意味着更安全),可以充分利用区块链的数据防篡改能力,在不需要自建区块链网络条件下,通过对存证请求进行组织汇总达到降低用户的存证成本,同时降低了数据泄露的风险等级。

下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。

请参见图6,其示出了本发明一个示例性实施例提供的基于区块链的电子数据存证系统的结构示意图。该基于区块链的电子数据存证系统可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该系统1包括请求发送模块10、随机字符串生成模块20、参数发送模块30、数据广播模块40。

请求发送模块10,用于客户端接收电子数据存证请求,向服务端发送电子数据存证请求;

随机字符串生成模块20,用于服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端;

参数发送模块30,用于客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端;

数据广播模块40,用于服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。

需要说明的是,上述实施例提供的基于区块链的电子数据存证系统在执行基于区块链的电子数据存证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于区块链的电子数据存证系统与基于区块链的电子数据存证方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请实施例中,系统首先通过客户端接收电子数据存证请求,向服务端发送电子数据存证请求,再通过服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端,然后通过客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端,最后通过服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。由于本申请利用现实中已有成熟区块链网络提供数据存证服务,通过使用现实中最大规模的区块链网络(规模大意味着更安全),可以充分利用区块链的数据防篡改能力,在不需要自建区块链网络条件下,通过对存证请求进行组织汇总达到降低用户的存证成本,同时降低了数据泄露的风险等级。

本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的基于区块链的电子数据存证方法。本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例所述的基于区块链的电子数据存证方法。

请参见图7,为本申请实施例提供了一种终端的结构示意图。如图7所示,所述终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。

其中,通信总线1002用于实现这些组件之间的连接通信。

其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。

其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。

其中,存储器1005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储系统。如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的电子数据存证应用程序。

在图7所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的基于区块链的电子数据存证应用程序,并具体执行以下操作:

接收输入的电子数据存证指令,向服务端发送电子数据存证请求并接收来自服务端返回的随机字符串;

获取电子数据;

将所述随机字符串和电子数据拼接后生成拼接存证数据;

计算所述拼接存证数据对应的散列值并将所述散列值作为存证信息发送至服务端。

在一个实施例中,所述处理器1001在执行所述计算所述拼接存证数据对应的散列值并将所述散列值作为存证信息发送至服务端之后时,还执行以下操作:

接收广播成功信息,发送参数信息下载指令至服务端;

将所述电子数据的参数信息下载后进行参数组合,生成存证凭证。

在一个实施例中,所述处理器1001在执行所述将所述电子数据的参数信息下载后进行参数组合,生成存证凭证之后时,还执行以下操作:

采用散列算法计算所述存证凭证中的默克尔树根节点的散列值和区块链中保存的默克尔树根节点的散列值是否一致,检验默克尔树的完整性;

采用散列算法计算所述存证凭证中的随机值与数据拼接后的新数据的散列值;

根据区块链中保存的默克尔树中存证凭证的随机值对应的散列值与所述新数据的散列值是否一致,检验数据完整性。

在本申请实施例中,系统首先通过客户端接收电子数据存证请求,向服务端发送电子数据存证请求,再通过服务端接收所述电子数据存证请求,产生随机字符串并发送至客户端,然后通过客户端获取电子数据并将所述电子数据与所述随机字符串拼接生成拼接数据并计算所述拼接数据的散列值,生成电子数据的存证参数集合并发送至服务端,最后通过服务端接收所述存证参数集合并计算出所述存证参数集合的默克尔树对应的根散列值以生成交易数据并将所述交易数据广播至区块链。由于本申请利用现实中已有成熟区块链网络提供数据存证服务,通过使用现实中最大规模的区块链网络(规模大意味着更安全),可以充分利用区块链的数据防篡改能力,在不需要自建区块链网络条件下,通过对存证请求进行组织汇总达到降低用户的存证成本,同时降低了数据泄露的风险等级。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1