密碼學(xué)實(shí)驗(yàn)報(bào)告_第1頁
密碼學(xué)實(shí)驗(yàn)報(bào)告_第2頁
密碼學(xué)實(shí)驗(yàn)報(bào)告_第3頁
密碼學(xué)實(shí)驗(yàn)報(bào)告_第4頁
密碼學(xué)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄AES加密算法實(shí)現(xiàn)2一實(shí)驗(yàn)?zāi)康?二實(shí)驗(yàn)原理2三實(shí)驗(yàn)步驟2四實(shí)驗(yàn)結(jié)果6五實(shí)驗(yàn)心得8六源代碼:9RSA加解密算法實(shí)現(xiàn)18一實(shí)驗(yàn)?zāi)康模?8二實(shí)驗(yàn)要求:18三RSA函數(shù)主要代碼18四運(yùn)算結(jié)果顯示:21五實(shí)驗(yàn)心得21AES加密算法實(shí)現(xiàn)一 實(shí)驗(yàn)?zāi)康?.深入理解AES加密/解密算法理論的基礎(chǔ)上,設(shè)計(jì)一個(gè)AES加密/解密軟件系統(tǒng);2完成一個(gè)明文分組的加解密,明文和密鑰是十六進(jìn)制,長度都為128比特(32個(gè)16進(jìn)制數(shù)),輸入明文和密鑰,輸出密文,進(jìn)行加密后,能夠進(jìn)行正確的解密;二 實(shí)驗(yàn)原理AES的區(qū)塊長度固定為128 比特,密鑰長度則可以是128,192或256比特;大多數(shù)AES計(jì)算是在一個(gè)特別的有限域完成

2、的。AES加密過程是在一個(gè)4×4的字節(jié)矩陣上運(yùn)作,這個(gè)矩陣又稱為“狀態(tài)矩陣”,其初值就是一個(gè)明文區(qū)塊(矩陣中一個(gè)元素大小就是明文區(qū)塊中的一個(gè)Byte)。加密時(shí),各輪AES加密循環(huán)(除最后一輪外)均包含4個(gè)步驟:1.SubBytes 通過一個(gè)非線性的替換函數(shù),用查找表的方式把每個(gè)字節(jié)替換成對應(yīng)的字節(jié)。2.ShiftRows 將矩陣中的每個(gè)行進(jìn)行循環(huán)式移位。3.MixColumns 列混淆。這個(gè)步驟使用線性轉(zhuǎn)換來混合每列的四個(gè)字節(jié)。4.AddRoundKey 矩陣中的每一個(gè)字節(jié)都與該次回合輪密鑰(round key)做XOR運(yùn)算;每個(gè)子密鑰由密鑰生成方案產(chǎn)生。三 實(shí)驗(yàn)步驟(一)加密1.密

3、鑰生成void keyexpansion(unsigned char S_BOX16,unsigned char keys44)unsigned char Rcon11 = 0,1,2,4,8,16,32,64,128,27,54;unsigned char past4;register int i,j;/打開密鑰文件if(fp=fopen("Key.txt","r")=NULL)printf("CAN NOT OPEN THE FILE!n");return ;printf("n請輸入密鑰!n");for(i =

4、 0;i <= 3;i +)for(j = 0;j <= 3;j +)fscanf(fp,"%02x",&keysji);printf("%02x ",keysji);for(i = 4;i <= 43;i +) /make the other 40 keys if(i % 4 = 0) /如果能被4整除,特殊處理for(j = 1;j <= 4;j +) /把前一個(gè)密鑰移位賦值給數(shù)組pastj - 1 = keysj % 4i -1;for(j = 0;j <= 3;j +)if(j = 0)keysji = S_

5、BOXpastj / 16pastj % 16 Rconi / 4 keysji - 4;elsekeysji = S_BOXpastj / 16pastj % 16 keysji - 4;elsefor(j = 0;j <= 3;j +)keysji = keysji - 4 keysji - 1;2.字節(jié)變換void bytesub(unsigned char S_BOX16,unsigned char B4)register int i,j;for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = S_BOXBij / 16Bij

6、% 16;3. 行移位void shiftrow(unsigned char B4)int i,temp;temp = B10;for(i = 0;i <= 2;i +)B1i = B1i + 1;B13 = temp;for(i = 0;i <= 1;i +)temp = B2i;B2i = B2i + 2;B2i + 2 = temp;temp = B33;for(i = 3;i >=1;i -)B3i = B3i - 1;B30 = temp;4. 列混合運(yùn)算unsigned char xtime (unsigned char input) / x乘法('02&

7、#39;乘法) int temp;temp = input<<1;if(input & 0x80)temp = 0x1b;return temp; void mixcolumn(unsigned char input4) /列混合 int i, j;unsigned char output44;for(j = 0;j <= 3;j+)for(i = 0;i <= 3;i+)outputij = xtime(inputi%4j) /0x02乘法 ( input ( i + 1 ) % 4j xtime( input ( i + 1 ) % 4j ) ) /0x03

8、乘法 input ( i + 2 ) % 4j /0x01乘法 input ( i + 3 ) % 4j; /0x01乘法for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)inputij = outputij;(二) 解密運(yùn)算1.逆行移位void invshiftrow(unsigned char B4)int i,temp;temp = B13;for(i = 3;i >= 1;i -)B1i = B1i - 1;B10 = temp;for(i = 0;i <= 1;i +)temp = B2i;B2i = B2i + 2;B2i

9、+ 2 = temp;temp = B30;for(i = 0;i <= 2;i +)B3i = B3i + 1;B33 = temp;2.逆列混合運(yùn)算void invmixcolum(unsigned char input4) int i, j;unsigned char output44;for(j=0; j< 4; j+)for(i=0; i<4; i+)outputij = (xtime(xtime(xtime(inputi % 4j) xtime(xtime(inputi % 4j)xtime(inputi % 4j) /0x0E乘法 (xtime(xtime(xt

10、ime(input ( i + 1 ) % 4j) xtime(input ( i + 1 ) % 4j) input ( i + 1 ) % 4j) /0x0B乘法 (xtime(xtime(xtime(input ( i + 2 ) % 4j) xtime(xtime(input ( i + 2 ) % 4j) input ( i + 2 ) % 4j) /0x0D乘法 (xtime(xtime(xtime(input ( i + 3 ) % 4j) input ( i + 3 ) % 4j); /0x09乘法for(i = 0;i <= 3;i +)for(j = 0;j <

11、= 3;j +)inputij = outputij;3.逆字節(jié)變換void invbytesub(unsigned char N_S_BOX16,unsigned char B4)register int i,j;for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = N_S_BOXBij / 16Bij % 16;四 實(shí)驗(yàn)結(jié)果我將明文設(shè)為13 43 67 69 88 d5 f6 8d 64 23 90 a2 e0 f5 b4 34,密鑰設(shè)為23 43 45 78 28 af cd ab f7 d4 88 09 c3 4f 3c 57,運(yùn)行

12、結(jié)果如下:五 實(shí)驗(yàn)心得本程序是處理的AES分組大小和密鑰長度都為128位,迭代輪數(shù)為10輪。由于我能力有限,下載的程序還有很多不足之處,比如不能自動(dòng)運(yùn)行產(chǎn)生16輪的輪密鑰,只能說是完成了AES的基本功能,我也希望能將它的功能變得更強(qiáng)大,但多次修改后均沒有成功。通過多次調(diào)試,對SubBytes,ShiftRows,MixColumns,AddRoundKey等加密過程,InvMixColumns,InvShiftRows,InvSubBytes等解密過程的編程運(yùn)行過程有了清晰的認(rèn)識(shí),深入理解了AES的加密和解密過程,對算法、密碼保密性和安全性有了新的認(rèn)識(shí),收獲很多。六 源代碼:#include

13、<stdio.h>#include <stdlib.h>FILE *fp;unsigned char xtime (unsigned char input);void keyexpansion(unsigned char S_BOX16,unsigned char keys44);void bytesub(unsigned char S_BOX16,unsigned char B4);void shiftrow(unsigned char B4);void mixcolumn(unsigned char input4);void invbytesub(unsigned

14、char N_S_BOX16,unsigned char B4);void invshiftrow(unsigned char B4);void invmixcolum(unsigned char input4);int jiami(unsigned char S_BOX16);int jiemi(unsigned char S_BOX16,unsigned char N_S_BOX16);/密鑰生成void keyexpansion(unsigned char S_BOX16,unsigned char keys44)unsigned char Rcon11 = 0,1,2,4,8,16,3

15、2,64,128,27,54;unsigned char past4;register int i,j;/打開密鑰文件if(fp=fopen("Key.txt","r")=NULL)printf("CAN NOT OPEN THE FILE!n");return ;printf("n請輸入密鑰!n");for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)fscanf(fp,"%02x",&keysji);printf("%02x &q

16、uot;,keysji);for(i = 4;i <= 43;i +) /make the other 40 keys if(i % 4 = 0) /如果能被4整除,特殊處理for(j = 1;j <= 4;j +) /把前一個(gè)密鑰移位賦值給數(shù)組pastj - 1 = keysj % 4i -1;for(j = 0;j <= 3;j +)if(j = 0)keysji = S_BOXpastj / 16pastj % 16 Rconi / 4 keysji - 4;elsekeysji = S_BOXpastj / 16pastj % 16 keysji - 4;elsefo

17、r(j = 0;j <= 3;j +)keysji = keysji - 4 keysji - 1;/列混合運(yùn)算用到的乘2函數(shù)unsigned char xtime (unsigned char input) / x乘法('02'乘法) int temp;temp = input<<1;if(input & 0x80)temp = 0x1b;return temp;/列混合運(yùn)算void mixcolumn(unsigned char input4) /列混合 int i, j;unsigned char output44;for(j = 0;j <

18、;= 3;j+)for(i = 0;i <= 3;i+)outputij = xtime(inputi%4j) /0x02乘法 ( input ( i + 1 ) % 4j xtime( input ( i + 1 ) % 4j ) ) /0x03乘法 input ( i + 2 ) % 4j /0x01乘法 input ( i + 3 ) % 4j; /0x01乘法for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)inputij = outputij;/行移位void shiftrow(unsigned char B4)int i,temp

19、;temp = B10;for(i = 0;i <= 2;i +)B1i = B1i + 1;B13 = temp;for(i = 0;i <= 1;i +)temp = B2i;B2i = B2i + 2;B2i + 2 = temp;temp = B33;for(i = 3;i >=1;i -)B3i = B3i - 1;B30 = temp;/字節(jié)變換void bytesub(unsigned char S_BOX16,unsigned char B4)register int i,j;for(i = 0;i <= 3;i +)for(j = 0;j <=

20、3;j +)Bij = S_BOXBij / 16Bij % 16;/逆行移位void invshiftrow(unsigned char B4)int i,temp;temp = B13;for(i = 3;i >= 1;i -)B1i = B1i - 1;B10 = temp;for(i = 0;i <= 1;i +)temp = B2i;B2i = B2i + 2;B2i + 2 = temp;temp = B30;for(i = 0;i <= 2;i +)B3i = B3i + 1;B33 = temp;/逆列混合運(yùn)算void invmixcolum(unsigned

21、 char input4) int i, j;unsigned char output44;for(j=0; j< 4; j+)for(i=0; i<4; i+)outputij = (xtime(xtime(xtime(inputi % 4j) xtime(xtime(inputi % 4j)xtime(inputi % 4j) /0x0E乘法 (xtime(xtime(xtime(input ( i + 1 ) % 4j) xtime(input ( i + 1 ) % 4j) input ( i + 1 ) % 4j) /0x0B乘法 (xtime(xtime(xtime(i

22、nput ( i + 2 ) % 4j) xtime(xtime(input ( i + 2 ) % 4j) input ( i + 2 ) % 4j) /0x0D乘法 (xtime(xtime(xtime(input ( i + 3 ) % 4j) input ( i + 3 ) % 4j); /0x09乘法for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)inputij = outputij;/逆字節(jié)變換void invbytesub(unsigned char N_S_BOX16,unsigned char B4)register int i

23、,j;for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = N_S_BOXBij / 16Bij % 16;int jiami(unsigned char S_BOX16)unsigned char e,B44;unsigned char keys444;int i,j;if(fp=fopen("Plaintext.txt","r")=NULL)printf("can't open the Plaintext.txt!n");return 0;printf("請輸

24、入信息!n");for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)fscanf(fp,"%02x",&e);Bji = e;printf("%02x ",e);getchar();fclose(fp);keyexpansion(S_BOX,keys);for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = keysij;int level;for(level = 1;level <= 9;level +) /1到9輪循環(huán)bytesub

25、(S_BOX,B);shiftrow(B);mixcolumn(B);for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = keysilevel * 4 + j;bytesub(S_BOX,B);/第10輪循環(huán)shiftrow(B);for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = keysi40 + j;if(fp=fopen("Ciphertext.txt","w")=NULL)printf("can't open the

26、 Plaintext.txt!n");return 0;printf("n加密后的信息為:n");for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)fprintf(fp,"%02x ",Bji);printf("%02x ",Bji);putchar('n');fclose(fp);return 0;int jiemi(unsigned char S_BOX16,unsigned char N_S_BOX16)unsigned char B44;unsigned

27、char keys444;unsigned char temp;int i,j;if(fp=fopen("Ciphertext.txt","r")=NULL)printf("can't open the Ciphertext.txt!n");return 0;printf("請輸入信息!n");for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)fscanf(fp,"%02x ",&temp);Bji = temp;printf(&qu

28、ot;%02x ",temp);fclose(fp);keyexpansion(S_BOX,keys);for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = keysij + 40;int level;for(level = 1;level <= 9;level +)invshiftrow(B);invbytesub(N_S_BOX,B);for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = keysi40 - level * 4 + j;invmixcolum(B);i

29、nvshiftrow(B);invbytesub(N_S_BOX,B);for(i = 0;i <= 3;i +)for(j = 0;j <= 3;j +)Bij = keysij;if(fp=fopen("jiemi_Plaintext.txt","w")=NULL)printf("can't open the jiemi_Plaintext.txt!n");return 0;printf("n解密的輸出的信息為:n");for(i = 0;i <= 3;i +)for(j = 0;j

30、<= 3;j +)fprintf(fp,"%02x ",Bji);printf("%02x ",Bji);putchar('n');fclose(fp);return 0;int main()unsigned char S_BOX1616 = 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5,0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0,0xAD,

31、0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC,0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A,0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0,0x52, 0x3B, 0xD6, 0xB3,

32、0x29, 0xE3, 0x2F, 0x84,0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B,0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85,0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5,0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3,

33、0xD2,0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17,0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73,0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88,0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB,0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C,0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79,0xE7, 0xC8, 0

34、x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9,0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08,0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6,0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A,0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E,0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,0xE1, 0xF8, 0x98, 0x11, 0x69, 0

35、xD9, 0x8E, 0x94,0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68,0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16;unsigned char N_S_BOX1616 = 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,0x7C, 0xE3, 0x39, 0x

36、82, 0x9B, 0x2F, 0xFF, 0x87,0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D,0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2,0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25,0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x

37、98, 0x16,0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92,0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA,0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84,0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A,0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06,0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02,0xC1, 0xA

38、F, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B,0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA,0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73,0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85,0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E,0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89,0x6F, 0xB7, 0x62, 0x0E, 0xA

39、A, 0x18, 0xBE, 0x1B,0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20,0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4,0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31,0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F,0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D,0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xE

40、F,0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0,0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26,0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D;int choose;loop:printf("加密請輸入-1n");printf("解密請輸入-2n");printf("退出請輸入-0nn");printf

41、("您的選擇是:");scanf("%d",&choose);switch(choose)case 1: jiami(S_BOX);goto loop;case 2: jiemi(S_BOX,N_S_BOX);goto loop;case 0: exit(0);default : exit(0);return 0;RSA加解密算法實(shí)現(xiàn)一實(shí)驗(yàn)?zāi)康模菏煜SA加密、解密的算法;懂得加密在通信中的重要作用。熟悉密碼工作模式。二實(shí)驗(yàn)要求:通過借鑒已有的代碼段,在其基礎(chǔ)上自己添加具體一些函數(shù)定義及參數(shù)定義,實(shí)現(xiàn)RSA加密的基本過程。理解RSA加解密算法,使用VC實(shí)現(xiàn)加密算法和解密算法。三RSA函數(shù)主要代碼#include<io

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論