第2章 抽象語法表示ASN1_第1頁
第2章 抽象語法表示ASN1_第2頁
第2章 抽象語法表示ASN1_第3頁
第2章 抽象語法表示ASN1_第4頁
第2章 抽象語法表示ASN1_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、0第二章 抽象語法表示ASN.1ASN.1ASN.1ASN.1抽象語法標(biāo)記(抽象語法標(biāo)記(Abstract Syntax Notation OneAbstract Syntax Notation One) ASN.1是一種 ISO/ITU-T 標(biāo)準(zhǔn),描述了一種對(duì)數(shù)據(jù)進(jìn)行表示、編碼、傳輸和解碼的數(shù)據(jù)格式。它提供了一整套正規(guī)的格式用于描述對(duì)象的結(jié)構(gòu),而不管語言上如何執(zhí)行及這些數(shù)據(jù)的具體指代,也不用去管到底是什么樣的應(yīng)用程序。它提供統(tǒng)一的網(wǎng)絡(luò)數(shù)據(jù)表示,通常用于定義應(yīng)用數(shù)據(jù)的抽象語法和應(yīng)用協(xié)議數(shù)據(jù)單元的結(jié)構(gòu)。在網(wǎng)絡(luò)管理中,無論是OSI的管理信息結(jié)構(gòu),或是SNMPMIB,都是用ASN.1定義的。用ASN

2、.1定義的應(yīng)用數(shù)據(jù)在傳送過程中要按一定規(guī)則變成比特串,這種規(guī)則就是基本編碼規(guī)則BER.ASN.1的基本概念的基本概念1第二章 抽象語法表示ASN.1ASN.12.1 2.1 網(wǎng)絡(luò)網(wǎng)絡(luò) 數(shù)據(jù)表示數(shù)據(jù)表示 ? ?2.2 ASN.12.2 ASN.1的基本概念的基本概念 2.3 2.3 基本編碼規(guī)則基本編碼規(guī)則 2.4 ASN.12.4 ASN.1宏定義宏定義 2第二章 抽象語法表示ASN.1ASN.11.網(wǎng)絡(luò)系統(tǒng)的發(fā)展,怎么進(jìn)行異種 (異構(gòu))信息間的通信?2.為什么用ASN.1?現(xiàn)有的數(shù)據(jù)結(jié)構(gòu)表達(dá)方式不可以嗎?3.傳輸語法與BER.3第二章 抽象語法表示ASN.1ASN.1 體現(xiàn)什么思想?和SNM

3、P協(xié)議、數(shù)據(jù)類型是什么關(guān)系?4第二章 抽象語法表示ASN.1ASN.12.1 網(wǎng)絡(luò)數(shù)據(jù)表示網(wǎng)絡(luò)數(shù)據(jù)表示在任何需要以數(shù)字方式發(fā)送信息的地方,ASN.1都可以發(fā)送各種形式的信息(聲頻、視頻、數(shù)據(jù)等等)。 ASN.1和特定的 ASN.1編碼規(guī)則推進(jìn)了結(jié)構(gòu)化數(shù)據(jù)的傳輸,尤其是網(wǎng)絡(luò)中應(yīng)用程序之間的結(jié)構(gòu)化數(shù)據(jù)傳輸,它以一種獨(dú)立于計(jì)算機(jī)架構(gòu)和語言的方式以一種獨(dú)立于計(jì)算機(jī)架構(gòu)和語言的方式來描述數(shù)據(jù)結(jié)數(shù)據(jù)結(jié)構(gòu)構(gòu)。 ASN.1 取得成功的一個(gè)主要原因是它與幾個(gè)標(biāo)準(zhǔn)化編碼規(guī)則相關(guān),如基本編碼規(guī)則(BER) -X.209 、規(guī)范編碼規(guī)則(CER)、識(shí)別名編碼規(guī)則(DER)、壓縮編碼規(guī)則(PER)和 XER 編碼規(guī)則(

4、XER)。 這些編碼規(guī)則描述了如何對(duì) ASN.1 中定義的數(shù)值進(jìn)行編碼,以便用于傳輸,而不管不管計(jì)算機(jī)、編程語言或它在應(yīng)用程序中如何表示等因素。 5第二章 抽象語法表示ASN.1ASN.12.1 網(wǎng)絡(luò)數(shù)據(jù)表示網(wǎng)絡(luò)數(shù)據(jù)表示本地存儲(chǔ)端系統(tǒng)A用戶本地映像應(yīng)用實(shí)體用戶表示映像編碼規(guī)則表示實(shí)體抽象語法ASN.1本地存儲(chǔ)本地映像端系統(tǒng)B用戶應(yīng)用實(shí)體用戶表示映像編碼規(guī)則表示實(shí)體傳輸語法BER1.在互相通信的端系統(tǒng)中至少有一個(gè)應(yīng)用實(shí)體應(yīng)用實(shí)體和一個(gè)表表示實(shí)體示實(shí)體。2.把抽象數(shù)據(jù)變換成比特串的編碼規(guī)則叫做傳輸語法傳輸語法。 如圖2.1所示。 圖2.1 關(guān)于信息表示的通信系統(tǒng)模型 6第二章 抽象語法表示ASN.

5、1ASN.12.2 ASN.1ASN.1的基本概念的基本概念A(yù)SN.1文本的書寫規(guī)則,這些規(guī)則叫做文本約定文本約定:(1)書寫的布局是無效的,多個(gè)空格和空行等效于一個(gè)空格;(2)用于表示值和字段的標(biāo)識(shí)符、類型指針(類型名)和模塊名由大小寫字母、數(shù)字和短線組成;(3) 標(biāo)識(shí)符以小寫字母開頭;(4) 類型指針和模塊名以大寫字母開頭;(5) ASN.1定義的內(nèi)部類型全部用大寫字母表示;(6) 關(guān)鍵字全部用大寫字母表示;(7) 注釋以一對(duì)短線(- -)開始,以一對(duì)短線或行尾結(jié)束。 ASN.1的特點(diǎn)? 表達(dá)簡(jiǎn)單和復(fù)雜類型的能力、可對(duì)類型根據(jù)大小及(或)數(shù)值進(jìn)行約束、也可以施加更強(qiáng)的約束、字段可標(biāo)記為 O

6、PTIONAL、大寫開頭表示類型名、小寫開頭的表示變量名/字段名7第二章 抽象語法表示ASN.1ASN.12.2 ASN.1ASN.1的基本概念的基本概念A(yù)SN.1文本的書寫規(guī)則,這些規(guī)則叫做文本約定文本約定:(1)書寫的布局是無效的,多個(gè)空格和空行等效于一個(gè)空格;(2)用于表示值和字段的標(biāo)識(shí)符、類型指針(類型名)和模塊名由大小寫字母、數(shù)字和短線組成;(3) 標(biāo)識(shí)符以小寫字母開頭;(4) 類型指針和模塊名以大寫字母開頭;(5) ASN.1定義的內(nèi)部類型全部用大寫字母表示;(6) 關(guān)鍵字全部用大寫字母表示;(7) 注釋以一對(duì)短線(- -)開始,以一對(duì)短線或行尾結(jié)束。 ASN.1ASN.1的特點(diǎn)?

7、的特點(diǎn)? 表達(dá)簡(jiǎn)單和復(fù)雜類型的能力、可對(duì)類型根據(jù)大小及(或)數(shù)值進(jìn)行約束、也可以施加更強(qiáng)的約束、字段可標(biāo)記為 OPTIONAL、大寫開頭表示類型名、小寫開頭的表示變量名/字段名8第二章 抽象語法表示ASN.1ASN.12.2 ASN.1ASN.1的基本概念的基本概念A(yù)SN.1ASN.1術(shù)語歸納(做好筆記)術(shù)語歸納(做好筆記)1.抽象語法(Abstract Syntax)描述通用數(shù)據(jù)結(jié)構(gòu);允許定義數(shù)據(jù)類型和值2.數(shù)據(jù)類型(Data Type)值的集合,可以是簡(jiǎn)單類型或結(jié)構(gòu)類型;可以對(duì)數(shù)據(jù)類型命名3.編碼(Encoding)用于表示數(shù)據(jù)值的字節(jié)序列4.編碼規(guī)則(Encoding Rules)給出從

8、一種語法到另一種的映射方法5.傳輸語法(Transfer Syntax)位模式(Bits pattern)描述數(shù)據(jù)是在傳輸時(shí)是如何表示的9第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型在ASN.1中,每一個(gè)數(shù)據(jù)類型都有一個(gè)標(biāo)簽(Tag),標(biāo)簽有類型和值(見p25表2.1),數(shù)據(jù)類型是由標(biāo)簽的類型和值惟一決定的,這種機(jī)制在數(shù)據(jù)編碼時(shí)有用。標(biāo)簽的類型分為以下4種: 通用標(biāo)簽-UNIVERSAL 應(yīng)用標(biāo)簽-APPLICATION 上下文專用標(biāo)簽 私有標(biāo)簽-PRIVATE10第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型表表2.1 ASN.12.

9、1 ASN.1定定義義的通用的通用類類型型 ( (部分部分) )這些數(shù)據(jù)類型可分為這些數(shù)據(jù)類型可分為4 4大類:簡(jiǎn)單類型、構(gòu)造類型、標(biāo)簽類型、其它類型大類:簡(jiǎn)單類型、構(gòu)造類型、標(biāo)簽類型、其它類型標(biāo) 簽 類 型 值 集 合 UNIVERSAL 1 BOOLEAN TRUE, FALSE UNIVERSAL 2 INTEGER 正數(shù)、負(fù)數(shù)和零 UNIVERSAL 3 BIT STRING 0個(gè)或多個(gè)比特組成的序列 UNIVERSAL 4 OCTET STRING 0個(gè)或多個(gè)字節(jié)組成的序列 UNIVERSAL 5 NULL 空類型 UNIVERSAL 6 OBJECT IDENTIFIER 對(duì)象標(biāo)識(shí)

10、符 UNIVERSAL 7 Object Descriptor 對(duì)象描述符 UNIVERSAL 8 EXTERNAL 外部文件定義的類型 UNIVERSAL 9 REAL 所有實(shí)數(shù) UNIVERSAL 10 ENUMERATED 整數(shù)值的表,每個(gè)整數(shù)有一個(gè)名字 UNIVERSAL 1115 保留 為ISO 8824保留 11第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型UNIVERSAL 16 SEQUENCE, SEQUENCE OF 序列 UNIVERSAL 17 SET, SET OF 集合 UNIVERSAL 18 NumericString 數(shù)字09和空格

11、 UNIVERSAL 19 PrintableString 可打印字符串 UNIVERSAL 20 TeletexString 由CCITT T.61建議定義的字符集 UNIVERSAL 21 V ideotexString 由CCITT T.100 和T.101建議定義的字符集 UNIVERSAL 22 IA5String 國(guó)際標(biāo)準(zhǔn)字符集5(相當(dāng)于ASCII碼) UNIVERSAL 23 UTCTime 時(shí)間 UNIVERSAL 24 GeneralizedTime 時(shí)間 UNIVERSAL 25 GraphicString 由ISO 8824定義的字符集 UNIVERSAL 26 V is

12、ibleString 由ISO 646定義的字符集 UNIVERSAL 27 GeneralString 通用字符集 UNIVERSAL 28以后 保留 為ISO 8824保留 表表2.1 ASN.12.1 ASN.1定定義義的通用的通用類類型型 ( (部分部分) )這些數(shù)據(jù)類型可分為這些數(shù)據(jù)類型可分為4 4大類:簡(jiǎn)單類型、構(gòu)造類型、標(biāo)簽類型、其它類型大類:簡(jiǎn)單類型、構(gòu)造類型、標(biāo)簽類型、其它類型12第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型1.1.簡(jiǎn)單類型簡(jiǎn)單類型除了除了UNIVERSAL16-17UNIVERSAL16-17之外的通用類型之外的通用類型都是簡(jiǎn)單

13、類型這些類型的共同特點(diǎn)是可以直接定義它們值的集合,可以把這些類型作為原子類型構(gòu)造新的數(shù)據(jù)類型。簡(jiǎn)單類型可以分為簡(jiǎn)單類型可以分為4 4組:組:第一組(基本類型)第一組(基本類型):BOOLEAN、INTEGER、BIT STRING、OCTET STRING、REAL、ENUMERATED.實(shí)數(shù)可以表示為科學(xué)計(jì)數(shù)法。枚舉類型的值只是用整數(shù)表示的一個(gè)符號(hào),而不具有整數(shù)的性質(zhì)。下面是定義枚舉類型的例子:EthernetAdapterStatus:=ENUMERATEDnormal(0),degraded(1), offline(2),failed(3)第二組:第二組:包括各種字符串類型,標(biāo)簽為UNI

14、VERSAL 1822和UNIVERSAL 2527(表示字符類型 為何如此多的類型?)第三組:第三組:包括OBJECT IDENTIFIER和Object Descriptor兩種類型。第四組:第四組:包含4種類型。NULL是空類型,EXTERNAL是外部類型,UTCTime和GeneralizedTime是兩種有關(guān)時(shí)間的類型,其區(qū)別是表示時(shí)間的形式不同。13第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型1.1.簡(jiǎn)單類型簡(jiǎn)單類型第四組:第四組:包含4種類型。NULL是空類型,EXTERNAL是外部類型,UTCTime和GeneralizedTime是兩種有關(guān)時(shí)間的

15、類型,其區(qū)別是表示時(shí)間的形式不同。例如:20000721182053.7是GeneralizedTime類型的一個(gè)值,表示2000年7月21日,當(dāng)?shù)貢r(shí)間18點(diǎn)20分53.7秒。 20000721182053.7Z表示同樣的時(shí)間,但是加了符號(hào)Z,則表示UTC時(shí)間。如果寫為: 20000721182053.7 +0800 除了表示當(dāng)?shù)貢r(shí)間外,還表示加8小時(shí)可以得到UTC時(shí)間。14第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型2.2.構(gòu)造類型構(gòu)造類型構(gòu)造類型有序列序列和集合集合兩種,分別用SEQUENCE和SEQUENCE OF表示不同類型和相同類型元素的序列,分別用SE

16、T和SET OF表示不同類型和相同類型元素的集合。他們的區(qū)別是什么?定義序列類型的例子:EthernetCollisionsCounter:=SEQUENCESEQUENCE highValue INTEGER, lowValueINTEGER TokenRingTokensLost:=SEQUENCESEQUENCE highValueINTRGER, lowValueINTEGER LanSimpleCounterLimits:=SEQUENCE SEQUENCE ethernetCounter1 COMPONENTS OF EthernetCollisionsCounter, token

17、RingCounter1COMPONENTS OF TokenRingTokensLost 標(biāo)題定義集合類型的例子:LanWorkstationSerialNumbers:=OCTET STRING(SIZE(32)LanSegment:=SET OFSET OF LanWorkstationSerialNumbersMacAddresses:=OCTET STRING(SIZE(6)EthernetNetworks:=SET OFSET OF MacAddressesTokenRingNetworks:=SET OFSET OF LanSegmentLanNetwork:=SETSET et

18、herNet 0 IMPLICIT EthernetNetworks, tokenNet 1 IMPLICIT TokenRingNetworks 15v 結(jié)構(gòu)類型由組件組成。ASN.1定義了四種,都與PKCS標(biāo)準(zhǔn)有關(guān):v SEQUENCE:一個(gè)或多個(gè)類型的有序集合v SEQUENCE OF:0個(gè)或某個(gè)給定類型多次出現(xiàn)的有序集合v SET:一個(gè)或多個(gè)類型的無序集合v SET OF:0個(gè)或某給定類型多次出現(xiàn)的無序集合v 結(jié)構(gòu)類型允許有可選組件??蛇x組件可能有默認(rèn)值。16第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型3.3.標(biāo)簽類型標(biāo)簽類型 Exuniv:=UNIVER

19、SAL 2 INTEGER Exuniv:=UNIVERSAL 2 INTEGER Exappl:=APPLICATION 0 INTEGER Exappl:=APPLICATION 0 INTEGER Expriv:=PRIVATE 1 INTEGER Expriv:=PRIVATE 1 INTEGER 標(biāo)簽標(biāo)簽由一由一個(gè)個(gè) 標(biāo)簽類標(biāo)簽類 和和 一一個(gè)個(gè) 標(biāo)簽號(hào)標(biāo)簽號(hào) 組組成。成。指應(yīng)用或用戶加在某個(gè)類型上的標(biāo)簽標(biāo)簽。加上一個(gè)標(biāo)簽后就是一個(gè)新的新的類類型型。標(biāo)簽類型作用?17第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型例如集合中有3個(gè)同樣類型的元素,一個(gè)指本人的

20、名字,一個(gè)指父親的名字,另一個(gè)指母親的名字,分分別為別為其指定不同的上下文其指定不同的上下文專專用用標(biāo)簽標(biāo)簽11、22和和33以示區(qū)別,參見下例: Parentage:=SETSubjectName1 IMPLICIT IA5String,MotherName 2 IMPLICIT IA5String OPTIONAL,FatherName 3 IMPLICIT IA5String OPTIONAL 在編碼中注意: Expriv:=PRIVATE 1 IMPLICIT INTEGER Expriv:=PRIVATE 1 IMPLICIT INTEGER Expriv:=PRIVATE 1 (E

21、XPLICIT) INTEGER Expriv:=PRIVATE 1 (EXPLICIT) INTEGER18第二章 抽象語法表示ASN.1ASN.12.2.1抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型CHOICECHOICE和和ANYANY是是兩個(gè)沒兩個(gè)沒有有標(biāo)簽標(biāo)簽的的類類型,型, 下面是定義CHOICE類型的例子:EthernetAdapterNumber:=CHOICENULL, OCTET STRING ANY類型表示任意類型的任意值例1,我們可以定義SoftwareVersion:=ANY 例2,TextBook:=SEQUENCE author IA5String, reference ANY 4

22、.4.其它類型其它類型19第二章 抽象語法表示ASN.1ASN.12.2.2子類型子類型子類型是由限制父類型的值集合而導(dǎo)出的類型,因此子類型的值集合是父類型的子集。子類型還可以再產(chǎn)生子類型。類 型 單個(gè)值 包含子類型 值區(qū)間 限制大小 可用字符 內(nèi)部子類型 BOOLEAN ? ? INTEGER ? ? ? ENUM ERATED ? ? REAL ? ? ? OBJECT IDENTIFIER ? ? BIT STRING ? ? ? OCTET STRING ? ? ? CHARACTER STRING ? ? ? ? SEQUENCE ? ? ? SEQUENCE OF ? ? ? ?

23、SET ? ? ? SET OF ? ? ? ? ANY ? ? CHOICE ? ? ? 20第二章 抽象語法表示ASN.1ASN.1v1. 1. 單個(gè)值v這種方法就是列出子類型可取的各個(gè)值。例如,我們可以定義小素?cái)?shù)為整數(shù)類型的子集:vSmallPrime:=INTEGER(2|3|5|7|11|13|15|17|19|23|29)v另外,如果定義Months為枚舉類型:vMonths:=ENUMERATEDjanuary(1),february(2),march(3),april(4),may(5), june(6),july(7),august(8),september(9),octob

24、er(10),november(11),december(12) v 則可以定義First-quarter和Second-quarter為Months的子類型:v First-quarter:=Months(january,february,march)v Second-quarter:=Months(april,may,june) 21第二章 抽象語法表示ASN.1ASN.1v 2. 2. 包含子類型( (與前者的區(qū)別?)v 這里要用到關(guān)鍵字INCLUDESINCLUDES,說明被定義的類型包含了已有類型的所有的值。例如下面的定義:v First-half:=Months(INCLUDES

25、First-quarter | INCLUDES Second-quarter)22第二章 抽象語法表示ASN.1ASN.1v 3. 3. 值區(qū)間( ( ?) )v 這種方法只能應(yīng)用于整數(shù)和類型,指出子類型可取值實(shí)數(shù)的區(qū)間。在下面的定義中PLUS-INFINITY和MINUS-INFINITY分別表示正、負(fù)最大值,MAX和MIN分別表示父類型可允許的最大值和最小值,區(qū)間可以是閉區(qū)間或開區(qū)間。如果是開區(qū)間,則加上符號(hào)“”。因此下面4個(gè)定義是等價(jià)的:v PositiveInteger:=INTEGER(0.PLUS-INFINITY)v PositiveInteger:=INTEGER(1.PLU

26、S-INFINITY)v PositiveInteger:=INTEGER(0.MAX)v PositiveInteger:=INTEGER(1.MAX) 23第二章 抽象語法表示ASN.1ASN.1v 同理,下面4個(gè)定義也是等價(jià)的:v NegativeInteger:=INTEGER(MINUS-INFINITY.0)v NegativeInteger:=INTEGER(MINUS-INFINITY.-1)v NegativeInteger:=INTEGER(MIN.0)v NegativeInteger:=INTEGER(MIN.-1) 24第二章 抽象語法表示ASN.1ASN.1v 4.

27、 4. 可用字符( (與單個(gè)值?區(qū)別?)v 這種方法只能用于字符串類型,限制可使用的字符集。下面是兩個(gè)限制可用字符的例子:v TouchToneButtons:=IA5String(FROM(0|1|2|3|4| 5|6|8|9|*|#)v DigitString:=IA5String(FROM(0|1|2|3|4| 5|6|8|9)25第二章 抽象語法表示ASN.1ASN.1v 5. 5. 限制大小v 可以限制其規(guī)模大小,例如限制比特串、字節(jié)串或字符串的長(zhǎng)度,限制構(gòu)成序列或集合的元素(同類型)個(gè)數(shù)等。例如公共數(shù)據(jù)網(wǎng)的地址由514個(gè)數(shù)字組成,這個(gè)規(guī)定可用下面的定義表示:v It1DataNumber:=DigitString(SIZE(5.14)26第二章 抽象語法表示ASN.1ASN.1v 6. 6. 內(nèi)部子類型(約束)v 這種方法可用于序列、集合和CHOICECHOICE類型。這是一種很復(fù)雜的子類型關(guān)系,下面用例子說明。假定有一種協(xié)議數(shù)據(jù)單元:vPDU:=SETalpha0 INTEGER,v beta 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論