基于图片加密License的处理方法及装置制造方法

文档序号:6631948阅读:240来源:国知局
基于图片加密License的处理方法及装置制造方法
【专利摘要】本发明公开了一种基于图片加密License的处理方法,包括以下步骤:获取Java系统的加密信息;通过预设算法对加密信息进行加密,以获取License密文;结合License密文与目标图片以获取加密图片;将加密图片部署替换到服务器。本发明实施例的保护方法,通过对Java系统的加密信息进行加密,以获取License密文,从而结合License密文与图片,以进行二次加密,有效的通过License机制保护Java开发的软件系统及发挥License的作用,提高了安全性。本发明实施例还公开了一种基于图片加密License的处理装置。
【专利说明】基于图片加密License的处理方法及装置

【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种基于图片加密License的处理方法及装置。

【背景技术】
[0002]在产品出售后,一般需要对产品进行某些限制,例如绑定服务器,防止在多台服务器部署,同时又要对功能进行限制,防止用户对某些功能的无偿使用。相关技术中,一般采用License绑定硬件,配置文件配置各个功能的启用,但不足之处是license以文本的形式存储,导致容易被伪造,并且容易作为黑客攻击破解的线索,安全性较低。另外,Java程序的Class字节码很容易通过市面上提供的反编译器进行反编译,导致通过修改字节码的形式可以绕过验证,从而丧失了 license保护的目的。
[0003]其中,有的保护方法通过在Java项目中的License作为密文进行保护。然而,其需要存放成文本文件进行存储,Java中有专门的类Class对密文进行解密,以解密出具体控制内容来控制程序的执行,并且不对该Class类进行保护,破解人员可以通过反编译Class类读懂文本的意义,以进行文本伪造,并且容易被反编译或修改字节码绕过验证,导致丧失了 License的用处,安全性不高。
[0004]综上所述,相关技术中保护方法容易直接暴露License内容,从而可以以此作为入口进行破解和伪造,并且Java程序编译的Class字节码容易被反编译,并且Java字节码可以混淆,但通过混淆,还是可读的,导致易被其他人利用,降低了安全性。


【发明内容】

[0005]本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
[0006]为此,本发明的一个目的在于提出一种实现简单、安全性高的基于图片加密License的处理方法。
[0007]本发明的另一个目的在于提出一种基于图片加密License的处理装置。
[0008]为达到上述目的,本发明一方面实施例提出了一种基于图片加密License的处理方法,包括以下步骤:获取Java系统的加密信息;通过预设算法对所述加密信息进行加密,以获取License密文;结合所述License密文与目标图片以获取加密图片;以及将所述加密图片部署替换到服务器。
[0009]根据本发明实施例提出的基于图片加密License的处理方法,通过对Java系统的加密信息进行加密,以获取License密文,从而结合License密文与图片,以进行二次加密,有效的通过License机制保护Java开发的软件系统及发挥License的作用,提高了安全性。
[0010]另外,根据本发明上述实施例的基于图片加密License的处理方法还可以具有如下附加的技术特征:
[0011]进一步地,在本发明的一个实施例中,上述方法还包括:启动Java Web系统;预设ClassLoader加载解密类的Class字节码重新组装,以获取标准Class字节码;加载所述加密图片,并通过所述标准Class字节码解析所述加密图片中的License密文,以获取所述License密文中密文信息;验证所述密文信息与机器信息的匹配性;如果不匹配,则验证失败,所述Jave Web系统停止启动;以及如果匹配,则验证成功,并记录验证信息,所述JavaWeb系统正常启动。
[0012]优选地,在本发明的一个实施例中,所述预设算法可以为DES(Data Encrypt1nStandard,数据加密算法)加密算法。
[0013]优选地,在本发明的一个实施例中,所述目标图片可以为Logo图片。
[0014]优选地,在本发明的一个实施例中,所述License密文可以为Json格式的文本。
[0015]本发明另一方面实施例提出了一种基于图片加密License的处理装置,包括:获取模块,用于获取Java系统的加密信息;加密模块,用于通过预设算法对所述加密信息进行加密,以获取License密文;结合模块,用于结合所述License密文与目标图片以获取加密图片;以及部署模块,用于将所述加密图片部署替换到服务器。
[0016]根据本发明实施例提出的基于图片加密License的处理装置,通过对Java系统的加密信息进行加密,以获取License密文,从而结合License密文与图片,以进行二次加密,有效的通过License机制保护Java开发的软件系统及发挥License的作用,提高了安全性。
[0017]另外,根据本发明上述实施例的基于图片加密License的处理装置还可以具有如下附加的技术特征:
[0018]进一步地,在本发明的一个实施例中,上述装置还包括:启动模块,用于启动JavaWeb系统;加载模块,用于预设ClassLoader加载解密类的Class字节码重新组装,以获取标准Class字节码;解析模块,用于加载所述加密图片,并通过所述标准Class字节码解析所述加密图片中的License密文,以获取所述License密文中密文信息;验证模块,用于验证所述密文信息与机器信息的匹配性,并且如果不匹配,则验证失败,控制所述Jave Web系统停止启动,以及如果匹配,则验证成功,并记录验证信息,控制所述Java Web系统正常启动。
[0019]优选地,在本发明的一个实施例中,所述预设算法可以为DES加密算法。
[0020]优选地,在本发明的一个实施例中,所述目标图片可以为Logo图片。
[0021]优选地,在本发明的一个实施例中,所述License密文可以为Json格式的文本。
[0022]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

【专利附图】

【附图说明】
[0023]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0024]图1为根据本发明实施例的基于图片加密License的处理方法的流程图;
[0025]图2为根据本发明一个实施例的程序装置的制作流程图;
[0026]图3为根据本发明一个具体实施例的基于图片加密License的处理方法的加密流程图;
[0027]图4为根据本发明一个实施例的基于图片加密License的处理方法的解密流程图;
[0028]图5为根据本发明实施例的基于图片加密License的处理装置的结构示意图;以及
[0029]图6为根据本发明一个实施例的基于图片加密License的处理装置的结构示意图。

【具体实施方式】
[0030]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0031]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0032]在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0033]在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。
[0034]下面参照附图描述根据本发明实施例提出的基于图片加密License的处理方法及装置,首先将参照附图描述根据本发明实施例提出的基于图片加密License的处理方法。参照图1所示,该方法包括以下步骤:
[0035]S101,获取Java系统的加密信息。
[0036]S102,通过预设算法对加密信息进行加密,以获取License密文。
[0037]其中,在本发明的一个实施例中,预设算法优选为DES加密算法。DES加密算法为安全性比较高的一种算法,目前只有一种方法可以破解该算法,那就是穷举法,DES加密算法采用64位密钥技术,实际只有56位有效,8位用来校验的,例如,有这样的一台PC机器,它能每秒计算一百万次,那么256位空间它要穷举的时间为2285年,因此这种算法还是比较安全的一种算法。
[0038]进一步地,在本发明的一个实施例中,License密文优选为Json格式的文本。例如:
[0039]{’user,= ’ 30,,,date,=,2014-07-29,,vers1n = ’ V3.0,,mac=’ 14-DA-E9-71-77-9C,}。
[0040]S103,结合License密文与目标图片以获取加密图片。
[0041]优选地,在本发明的一个实施例中,目标图片优选为Logo图片。其中,一般的Web项目都有公司Logo的图片,本发明实施例默认选取公司Logo的图片,更加隐蔽,提高了安全性。需要说明的是,目标图片可以根据实际情况进行选择。
[0042]S104,将加密图片部署替换到服务器。
[0043]进一步地,在本发明的实施例的一个实施例中,上述方法还包括:启动Java Web系统;预设ClassLoader加载解密类的Class字节码重新组装,以获取标准Class字节码;加载加密图片,并通过标准Class字节码解析加密图片中的License密文,以获取License密文中密文信息;验证密文信息与机器信息的匹配性;如果不匹配,则验证失败,Jave Web系统停止启动;如果匹配,则验证成功,并记录验证信息,Java Web系统正常启动。
[0044]具体地,在本发明的一个实施例中,参照图2所示,首先具体阐述本发明实施例的程序装置的制作流程图,包括以下步骤:
[0045]SI,编写Class字节码加密程序,该程序为一个Java/C语言编写的类,该类可以加密Class字节码,系统预置了一种Class字节码加密算法,通过打乱字节码顺序的方式进行加密,该类后期会嵌入到JDK中。
[0046]S2,编写Class字节码解密算法,该程序为一个Java/C语言编写的类,该类可以界面步骤SI中加密的Class字节码还原成JDK可识别的文件,该类后期会嵌入到JDK中。
[0047]S3,编写JDK中的类加载器ClassLoader,该ClassLoader会调用S2中的解密Class程序进行解密Class,该ClassLoader可以从环境变量指定的Home里读取资源文件,如图片,jar包,Class文件等资源。
[0048]S4,编写图片与文本混合的Java类。
[0049]其中,一般的Web项目都有公司Logo的图片,本装置默认选取公司Logo的图片,也可以更改。该类可以将图片与文本混合,混合之后形成一个新的图片相当于加密图片,该新图片可以打开,看到的效果与原始图片一样,只是内部附加了特殊信息。
[0050]本方法预置执行如下的命令:copy/b logo, jpg+license.txt新logo, jpg进行附加信息,也可以扫描license, txt中的文本内容,与logo图片中的图片字符匹配计算存取位置的方式进行附加。
[0051]S5,编写步骤S4处理后图片解析出license文本的Java类。
[0052]S6,步骤S4及步骤S5的Java类通过步骤SI程序进行编译及加密Class。加密后的Class会嵌入到JDK中。
[0053]S7,编写License内容加密程序。License文本内容一般为Json格式的文本,如:
[0054]{’user,= ’ 30,,,date,=,2014-07-29,,vers1n = ’ V3.0,,mac=’ 14-DA-E9-71-77-9C,}
[0055]其中,本发明实施例要控制的信息以程序实际使用为准,本装置不作限制。
[0056]另外,本装置预置使用DES加密算法。其中,指定密钥为:固定的文本,或logo图片中的一段字节内容。
[0057]S8,License解密类为步骤S7的反向过程,同样本装置预置使用DES解密算法。
[0058]S9,将步骤S7,S8中的类使用步骤SI程序进行编译及加密Class,加密后的Class嵌入到JDK中。
[0059]S10,下载最新版的Open JDK (Java JDK的开源版本)。
[0060]Sll, Open JDK中添加前面提到的类。
[0061]S12,编译成新的JDK,装置制作完成。
[0062]本发明实施例的程序装置对Java字节码进行加密,这样市面上的反编译器不能反编译程序里的Class文件,并且License密文文本植入到项目的图片中,在图片中进行二次加密,图片也选择如公司logo图片,更加隐蔽,并且安全性更高。
[0063]具体地,在本发明的一个具体实施例中,参照图3所示,加密方法包括以下步骤:
[0064]SI,填写加密信息,调用程序装置的步骤S7进行加密。
[0065]S2,加密后产生加密后的密文。
[0066]S3,调用程序装置的步骤S4将密文与图片进行二次加密。
[0067]S4,本步骤S3加密后的图片上传至服务器。
[0068]S5,等待系统启动,解密验证。
[0069]进一步地,在本发明的一个具体实施例中,参照图4所示,解密方法包括以下步骤:
[0070]SI,启动 Java 系统。
[0071]S2,使用程序装置中的ClassLoader加载资源文件,加载Logo图片。
[0072]S3,加载出的图片读成流的形式交由解密类程序装置,从而解析出里面的License密文。
[0073]S4,将License密文解析成明文。
[0074]S5,验证明文信息是否与机器实际信息匹配,以判断是否满足系统运行的要求。
[0075]S6,验证不通过,停止启动。
[0076]S7,验证通过后,记录验证信息供程序后期调用,系统正常启动。
[0077]根据本发明实施例提出的基于图片加密License的处理方法,通过对Java系统的加密信息进行加密,以获取License密文,从而结合License密文与图片,以进行二次加密,有效的通过License机制保护Java开发的软件系统及发挥License的作用,提高了安全性,并且对Java字节码进行加密,阻止反编译器反编译程序里的Class文件,无法进行文本伪造,或者避免通过修改Class绕过验证,安全性更高。
[0078]其次参照附图描述根据本发明实施例提出的基于图片加密License的处理装置。参照图5所示,该装置10包括:获取模块100、加密模块200、结合模块300与部署模块400。
[0079]其中,获取模块100用于获取Java系统的加密信息。加密模块200用于通过预设算法对加密信息进行加密,以获取License密文。结合模块300用于结合License密文与目标图片以获取加密图片。部署模块400用于将加密图片部署替换到服务器。
[0080]其中,在本发明的一个实施例中,预设算法优选为DES加密算法。DES加密算法为安全性比较高的一种算法,目前只有一种方法可以破解该算法,那就是穷举法,DES加密算法采用64位密钥技术,实际只有56位有效,8位用来校验的,例如,有这样的一台PC机器,它能每秒计算一百万次,那么256位空间它要穷举的时间为2285年,因此这种算法还是比较安全的一种算法。
[0081]进一步地,在本发明的一个实施例中,License密文优选为Json格式的文本。例如:
[0082]{’user,= ’ 30,,,date,=,2014-07-29,,vers1n = ’ V3.0,,mac=’ 14-DA-E9-71-77-9C,}。
[0083]优选地,在本发明的一个实施例中,目标图片优选为Logo图片。其中,一般的Web项目都有公司Logo的图片,本发明实施例默认选取公司Logo的图片,更加隐蔽,提高了安全性。需要说明的是,目标图片可以根据实际情况进行选择。
[0084]进一步地,在本发明的实施例的一个实施例中,参照图6所示,上述装置10还包括:启动模块500、加载模块600、解析模块700与验证模块800。
[0085]启动模块500用于启动Java Web系统。加载模块600用于预设ClassLoader加载解密类的Class字节码重新组装,以获取标准Class字节码。解析模块700用于加载加密图片,并通过标准Class字节码解析加密图片中的License密文,以获取License密文中密文信息。验证模块800用于验证密文信息与机器信息的匹配性,并且如果不匹配,则验证失败,控制Jave Web系统停止启动,以及如果匹配,则验证成功,并记录验证信息,控制JavaWeb系统正常启动。
[0086]具体地,在本发明的一个实施例中,参照图2所示,首先具体阐述本发明实施例的程序装置的制作流程图,包括以下步骤:
[0087]SI,编写Class字节码加密程序,该程序为一个Java/C语言编写的类,该类可以加密Class字节码,系统预置了一种Class字节码加密算法,通过打乱字节码顺序的方式进行加密,该类后期会嵌入到JDK中。
[0088]S2,编写Class字节码解密算法,该程序为一个Java/C语言编写的类,该类可以界面步骤SI中加密的Class字节码还原成JDK可识别的文件,该类后期会嵌入到JDK中。
[0089]S3,编写JDK中的类加载器ClassLoader,该ClassLoader会调用S2中的解密Class程序进行解密Class,该ClassLoader可以从环境变量指定的Home里读取资源文件,如图片,jar包,Class文件等资源。
[0090]S4,编写图片与文本混合的Java类。
[0091]其中,一般的Web项目都有公司Logo的图片,本装置默认选取公司Logo的图片,也可以更改。该类可以将图片与文本混合,混合之后形成一个新的图片相当于加密图片,该新图片可以打开,看到的效果与原始图片一样,只是内部附加了特殊信息。
[0092]本方法预置执行如下的命令:copy/b logo, jpg+license.txt新logo, jpg进行附加信息,也可以扫描license, txt中的文本内容,与logo图片中的图片字符匹配计算存取位置的方式进行附加。
[0093]S5,编写步骤S4处理后图片解析出license文本的Java类。
[0094]S6,步骤S4及步骤S5的Java类通过步骤SI程序进行编译及加密Class。加密后的Class会嵌入到JDK中。
[0095]S7,编写License内容加密程序。License文本内容一般为Json格式的文本,如:
[0096]{’user,= ’ 30,,,date,=,2014-07-29,,vers1n = ’ V3.0,,mac=’ 14-DA-E9-71-77-9C,}
[0097]其中,本发明实施例要控制的信息以程序实际使用为准,本装置不作限制。
[0098]另外,本装置预置使用DES加密算法。其中,指定密钥为:固定的文本,或logo图片中的一段字节内容。
[0099]S8,License解密类为步骤S7的反向过程,同样本装置预置使用DES解密算法。
[0100]S9,将步骤S7,S8中的类使用步骤SI程序进行编译及加密Class,加密后的Class嵌入到JDK中。
[0101]S10,下载最新版的Open JDK (Java JDK的开源版本)。
[0102]Sll, Open JDK中添加前面提到的类。
[0103]S12,编译成新的JDK,装置制作完成。
[0104]本发明实施例的程序装置对Java字节码进行加密,这样市面上的反编译器不能反编译程序里的Class文件,并且License密文文本植入到项目的图片中,在图片中进行二次加密,图片也选择如公司logo图片,更加隐蔽,并且安全性更高。
[0105]具体地,在本发明的一个具体实施例中,参照图3所示,加密方法包括以下步骤:
[0106]SI,填写加密信息,调用程序装置的步骤S7进行加密。
[0107]S2,加密后产生加密后的密文。
[0108]S3,调用程序装置的步骤S4将密文与图片进行二次加密。
[0109]S4,本步骤S3加密后的图片上传至服务器。
[0110]S5,等待系统启动,解密验证。
[0111]进一步地,在本发明的一个具体实施例中,参照图4所示,解密方法包括以下步骤:
[0112]SI,启动 Java 系统。
[0113]S2,使用程序装置中的ClassLoader加载资源文件,加载Logo图片。
[0114]S3,加载出的图片读成流的形式交由解密类程序装置,从而解析出里面的License密文。
[0115]S4,将License密文解析成明文。
[0116]S5,验证明文信息是否与机器实际信息匹配,以判断是否满足系统运行的要求。
[0117]S6,验证不通过,停止启动。
[0118]S7,验证通过后,记录验证信息供程序后期调用,系统正常启动。
[0119]根据本发明实施例提出的基于图片加密License的处理装置,通过对Java系统的加密信息进行加密,以获取License密文,从而结合License密文与图片,以进行二次加密,有效的通过License机制保护Java开发的软件系统及发挥License的作用,提高了安全性,并且对Java字节码进行加密,阻止反编译器反编译程序里的Class文件,无法进行文本伪造,或者避免通过修改Class绕过验证,安全性更高。
[0120]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0121]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0122]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0123]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0124]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0125]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种基于图片加密License的处理方法,其特征在于,包括以下步骤: 获取Java系统的加密信息; 通过预设算法对所述加密信息进行加密,以获取License密文; 结合所述License密文与目标图片以获取加密图片;以及 将所述加密图片部署替换到服务器。
2.根据权利要求1所述的基于图片加密License的处理方法,其特征在于,还包括: 启动Java Web系统; 预设ClassLoader加载解密类的Class字节码重新组装,以获取标准Class字节码;加载所述加密图片,并通过所述标准Class字节码解析所述加密图片中的License密文,以获取所述License密文中密文信息; 验证所述密文信息与机器信息的匹配性; 如果不匹配,则验证失败,所述Jave Web系统停止启动;以及 如果匹配,则验证成功,并记录验证信息,所述Java Web系统正常启动。
3.根据权利要求1所述的基于图片加密License的处理方法,其特征在于,所述预设算法为DES加密算法。
4.根据权利要求1所述的基于图片加密License的处理方法,其特征在于,所述目标图片为Logo图片。
5.根据权利要求1所述的基于图片加密License的处理方法,其特征在于,所述License密文为Json格式的文本。
6.一种基于图片加密License的处理装置,其特征在于,包括: 获取模块,用于获取Java系统的加密信息; 加密模块,用于通过预设算法对所述加密信息进行加密,以获取License密文; 结合模块,用于结合所述License密文与目标图片以获取加密图片;以及 部署模块,用于将所述加密图片部署替换到服务器。
7.根据权利要求6所述的基于图片加密License的处理装置,其特征在于,还包括: 启动模块,用于启动Java Web系统; 加载模块,用于预设ClassLoader加载解密类的Class字节码重新组装,以获取标准Class字节码; 解析模块,用于加载所述加密图片,并通过所述标准Class字节码解析所述加密图片中的License密文,以获取所述License密文中密文信息; 验证模块,用于验证所述密文信息与机器信息的匹配性,并且如果不匹配,则验证失败,控制所述Jave Web系统停止启动,以及如果匹配,则验证成功,并记录验证信息,控制所述Java Web系统正常启动。
8.根据权利要求6所述的基于图片加密License的处理方法,其特征在于,所述预设算法为DES加密算法。
9.根据权利要求6所述的基于图片加密License的处理方法,其特征在于,所述目标图片为Logo图片。
10.根据权利要求6所述的基于图片加密License的处理方法,其特征在于,所述License密文为Json格式的文本。
【文档编号】G06F21/10GK104318133SQ201410586973
【公开日】2015年1月28日 申请日期:2014年10月28日 优先权日:2014年10月28日
【发明者】黄刚, 李奎阳, 金鲁 申请人:艾普工华科技(武汉)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1