版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、網(wǎng)絡與信息安全課程設計報告 班級: 學號:姓名:題目:加密軟件設計評閱:成績:目錄摘要21 數(shù)據(jù)加密概述及DES算法由來31.1 數(shù)據(jù)加密概述31.2 DES算法由來32 DES算法原理及算法實現(xiàn)42.1 DES算法原理42.2 DES算法詳述62.3利用C語言實現(xiàn)DES算法93 DES的應用誤區(qū)及加密軟件的實現(xiàn)193.1 DES的應用誤區(qū)193.2 加密軟件的實現(xiàn)19參考資料:20摘要密碼學是網(wǎng)絡安全的基礎,在安全領域密碼學是最主要的分支之一,眾多的網(wǎng)絡安全技術都是基于密碼學的。數(shù)據(jù)加密是所有數(shù)據(jù)安全技術的核心,其在網(wǎng)絡上的作用是防止重要的或私有化信息在網(wǎng)絡上截獲或篡改。目前,數(shù)據(jù)加密技術已
2、經(jīng)被普遍應用于計算機網(wǎng)絡信息的安全管理中。本次課程設計即使要完成一項加密軟件的設計,利用DES算法,通過編寫源代碼,調(diào)試和運行序完成加密解密的實現(xiàn),最后實現(xiàn)加密軟件界面。本人利用C語言編寫程序,主要完成的任務是搜集加密技術的相關資料,程序的編寫調(diào)試,以及最后的軟件實現(xiàn)。 關鍵字:數(shù)據(jù)加密,DES算法,程序設計,網(wǎng)絡安全1 數(shù)據(jù)加密概述及DES算法由來1.1 數(shù)據(jù)加密概述 在互聯(lián)網(wǎng)上進行文件、電子商務往來等信息傳輸時存在許多不安全因素,尤其是一些機密文件在網(wǎng)絡傳輸時,信息安全顯得尤其重要。不安全性是互聯(lián)網(wǎng)的存在基礎TCP/IP協(xié)議所固有的,因此解決這一問題的方案就是加密,加密后的數(shù)據(jù)被別人獲取后
3、,在解密之前是不可讀的。 加密的目的是防止機密信息泄露,同時還可以用于驗證信息源的真實性,驗證所接受到的數(shù)據(jù)的完整性。通常將加密前的原始數(shù)據(jù)或消息稱為明文,經(jīng)過加密得到的代碼稱為密文。數(shù)據(jù)加密的逆過程稱為數(shù)據(jù)解密,即將密文轉(zhuǎn)化為明文的過程。只有利用相應的密鑰對密文進行解密,才能夠顯示明文的內(nèi)容,通過這樣的途徑能夠保護數(shù)據(jù)不被非授權的訪問者非法竊取。加密技術通常分為兩大類:常規(guī)密鑰密碼體制和公開密鑰密碼體制。所謂常規(guī)密鑰密碼體制,是指加密密鑰與解密密鑰相同的密碼體制。這種加密系統(tǒng)又稱為對稱密鑰系統(tǒng)。美國政府采用的DES加密標準就是一種典型的對稱式加密算法。公開密鑰密碼體制使用不同的加密密鑰和解密
4、密鑰,采用非對稱的加密算法,RSA算法就是其中使用最廣泛的算法之一。1.2 DES算法由來美國國家標準局1973年開始研究除國防部門外的其他部門的計算機系統(tǒng)的數(shù)據(jù)加密標準,于1973年5月15日和1974年8月27日先后兩次向公眾征求加密算法的公告。加密算法要達到的目的(通常稱為DES密碼算法要求)主要為以下四點:(1) 提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權的泄漏和未被察覺的修改;(2) 具有相當高的復雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握;(3) DES密碼體制的安全性應該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎;(4) 實現(xiàn)經(jīng)濟,運行有效,并且適用于多
5、種不同的應用。1977年1月,美國政府正式許可以IBM公司設計的方案作為非機密數(shù)據(jù)的數(shù)據(jù)加密標準(Data Encryption Standard,DES)。DES算法已經(jīng)應用于許多需要安全加密的場合,UNIX的密碼保護算法就是以DES算法為基礎的。2 DES算法原理及算法實現(xiàn)2.1 DES算法原理DES是一個分組加密算法(如圖2-1)。 明文按64位進行分組,密匙長64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位, 使得每個密鑰都有奇數(shù)個1)分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。圖2-1 對稱密碼體制分組密碼加
6、密示意圖DES算法是這樣工作的:如Mode為加密,則用Key 去把數(shù)據(jù)Data進行加密, 生成Data的密碼形式(64位)作為DES的輸出結果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果。在通信網(wǎng)絡的兩端,雙方約定一致的Key,在通信的源點用Key對核心數(shù)據(jù)進行DES加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸?shù)酵ㄐ啪W(wǎng)絡的終點,數(shù)據(jù)到達目的地后,用同樣的Key對密碼數(shù)據(jù)進行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,便保證了核心數(shù)據(jù)(如PIN、MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃?。簡單地說,算法只不過是加密的兩個
7、基本技術混亂和擴散的組合。DES基本組建分組是這些技術的一個組合(先替代后置換)。它基于密鑰作用于明文,這就是眾所周知的輪。DES有16輪,這意味著在明文分組上16次實施相同的組合技術,如圖2-2所示。在圖2-2中,DES對64bit的明文分組進行操作。通過一個初始置換,將明文分為左半部分和右半部分,各為32bit長。然后進行16輪完全相同的迭代,在迭代過程中數(shù)據(jù)與密鑰結合。經(jīng)過16輪后,左、右部分合在一起經(jīng)過一個逆置換,該算法就完成了。DES加密算法特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。圖2-2 DES算法示意圖2.2 DES算法詳述 DES算法把64位的明文輸入塊變?yōu)?
8、4位的密文輸出塊,它所使用的密鑰也是64位,其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,其置換規(guī)則見下表:58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,即將輸入的第58位換到第一位,第50位換到第2位,.,依此類推,最后一位是原來的
9、第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0 是右32位,例:設置換前的輸入值為D1D2D3.D64,則經(jīng)過初始置換后的結果為:L0=D550.D8;R0=D57D49.D7。經(jīng)過26次迭代運算后。得到L16、R16,將此作為輸入,進行逆置換,即得到密文輸出。逆置換正好是初始置的逆運算,例如,第1位經(jīng)過初始置換后,處于第40位,而通過逆置換,又將第40位換回到第1位,其逆置換規(guī)則如下表所示:40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29
10、,36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58 26,33,1,41, 9,49,17,57,25,放大換位表32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1,單純換位表16,7,20,21,29,12,28,17, 1,15,23,26, 5,18,31,10,2,8,2
11、4,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25,在f(Ri,Ki)算法描述圖中,S1,S2.S8為選擇函數(shù),其功能是把6bit數(shù)據(jù)變?yōu)?bit數(shù)據(jù)。下面給出選擇函數(shù)Si(i=1,2.8)的功能表:選擇函數(shù)SiS1:14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,S2:15,1,8,14,6,11,3,4,9,
12、7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,S3:10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,S4:7,13,14,3,0
13、,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,S5:2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,S6:1
14、2,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,S7:4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2
15、,3,12,S8:13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,在此以S1為例說明其功能,我們可以看到:在S1中,共有4行數(shù)據(jù),命名為0,1、2、3行;每行有16列,命名為0、1、2、3,.,14、15列?,F(xiàn)設輸入為: DD1D2D3D4D5D6令:列D2D3D4D5行D1D6然后在S1表中查得對應的數(shù),以4位二進制表示,此即為選擇函數(shù)S1
16、的輸出。下面給出子密鑰Ki(48bit)的生成算法從子密鑰Ki的生成算法描述圖中我們可以看到:初始Key值為64位,但DES算法規(guī)定,其中第8、16、.64位是奇偶校驗位,不參與DES運算。故Key 實際可用位數(shù)便只有56位。即:經(jīng)過縮小選擇換位表1的變換后,Key 的位數(shù)由64 位變成了56位,此56位分為C0、D0兩部分,各28位,然后分別進行第1次循環(huán)左移,得到C1、D1,將C1(28位)、D1(28位)合併得到56位,再經(jīng)過縮小選擇換位2,從而便得到了密鑰K0(48位)。依此類推,便可得到K1、K2、.、K15,不過需要注意的是,16次循環(huán)左移對應的左移位數(shù)要依據(jù)下述規(guī)則進行:循環(huán)左移
17、位數(shù)1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1以上介紹了DES算法的加密過程。DES算法的解密過程是一樣的,區(qū)別僅僅在于第一次迭代時用子密鑰K15,第二次K14、.,最后一次用K0,算法本身并沒有任何變化。2.3利用C語言實現(xiàn)DES算法 /* Provided by wangjunchuan, Northeastern University */#include #include #include / 初始置換表const static char IP_Table64 = 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28,
18、20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7;/ 逆初始置換表const static char IPR_Table64 = 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,38, 6
19、, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25;/ 擴展置換表static const char Extension_Table48 = 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 1
20、6, 17,16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1;/ P盒置換表const static char P_Table32 = 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10,2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25;/ 密鑰置換表 const static char PCK_Table56 = 57, 49,
21、 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18,10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36,63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22,14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4;/ 壓縮置換表 const static char PCC_Table48 = 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,23, 19, 12,
22、4, 26, 8, 16, 7, 27, 20, 13, 2,41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48,44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32;/ 每輪移動的位數(shù) const static char LOOP_Table16 = 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1;/ S盒設計const static char S_Box8416 = / S盒1 14, 4, 13,1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15
23、, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13,/ S盒2 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5,
24、 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9,/ S盒3 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8,13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1,13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12,/ S盒
25、4 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15,13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9,10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14,/ S盒5 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9,14, 11, 2, 12, 4, 7, 13, 1
26、, 5, 0, 15, 10, 3, 9, 8, 6, 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14, 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3,/ S盒6 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11,10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6
27、, 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13,/ S盒7 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1,13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12,/ S盒8 13, 2, 8, 4, 6, 15,
28、 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8, 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11;typedef bool (*PSubKey)1648;enum ENCRYPT,DECRYPT;static bool SubKey21648;/ 16圈子密鑰static bool Is3DES;/ 3次
29、DES標志static char Tmp256, deskey16;/*static void DES(char Out8, char In8, const PSubKey pSubKey, bool Type);/標準DES加/解密static void SetKey(const char* Key, int len);/ 設置密鑰static void SetSubKey(PSubKey pSubKey, const char Key8);/ 設置子密鑰static void F_func(bool In32, const bool Ki48);/ f 函數(shù)static void S_fu
30、nc(bool Out32, const bool In48);/ S 盒代替static void Transform(bool *Out, bool *In, const char *Table, int len);/ 變換static void Xor(bool *InA, const bool *InB, int len);/ 異或static void RotateL(bool *In, int len, int loop);/ 循環(huán)左移static void ByteToBit(bool *Out, const char *In, int bits);/ 字節(jié)組轉(zhuǎn)換成位組stati
31、c void BitToByte(char *Out, const bool *In, int bits);/ 位組轉(zhuǎn)換成字節(jié)組/ TypeENCRYPT:加密,DECRYPT:解密/ 輸出緩沖區(qū)(Out)的長度 = (datalen+7)/8)*8,即比datalen大的且是8的倍數(shù)的最小正整數(shù)/ In 可以= Out,此時加/解密后將覆蓋輸入緩沖區(qū)(In)的內(nèi)容/ 當keylen8時系統(tǒng)自動使用3次DES加/解密,否則使用標準DES加/解密.超過16字節(jié)后只取前16字節(jié)bool DES_Act(char *Out,char *In,long datalen,const char *Key,
32、int keylen,bool Type = ENCRYPT);*/ 字節(jié)轉(zhuǎn)換函數(shù)void ByteToBit(bool *Out, const char *In, int bits) for(int i=0; i3(i&7) & 1;/ 比特轉(zhuǎn)換函數(shù)void BitToByte(char *Out, const bool *In, int bits) memset(Out, 0, bits3); for(int i=0; i3 |= Ini(i&7);/ 變換函數(shù)void Transform(bool *Out, bool *In, const char *Table, int len) f
33、or(int i=0; ilen; +i) Tmpi = In Tablei-1 ; memcpy(Out, Tmp, len);/ 異或函數(shù)的實現(xiàn)void Xor(bool *InA, const bool *InB, int len) for(int i=0; ilen; +i) InAi = InBi;/ 輪轉(zhuǎn)函數(shù)void RotateL(bool *In, int len, int loop) memcpy(Tmp, In, loop); memcpy(In, In+loop, len-loop); memcpy(In+len-loop, Tmp, loop);/ S函數(shù)的實現(xiàn)void
34、 S_func(bool Out32, const bool In48) for(char i=0,j,k; i8; +i,In+=6,Out+=4) j = (In01) + In5; k = (In13) + (In22) + (In31) + In4;ByteToBit(Out, &S_Boxijk, 4); / F函數(shù)的實現(xiàn)void F_func(bool In32, const bool Ki48) static bool MR48; Transform(MR, In, Extension_Table, 48); Xor(MR, Ki, 48); S_func(In, MR); Tr
35、ansform(In, In, P_Table, 32);/ 設置子密鑰void SetSubKey(PSubKey pSubKey, const char Key8) static bool K64, *KL=&K0, *KR=&K28; ByteToBit(K, Key, 64); /轉(zhuǎn)換格式 Transform(K, K, PCK_Table, 56); / 由56位密鑰產(chǎn)生48位子密鑰 for(int i=0; i16?16:len);SetSubKey(&SubKey0, &deskey0);Is3DES = len8 ? (SetSubKey(&SubKey1, &deskey8)
36、, true) : false;/ DES加解密函數(shù)void DES(char Out8, char In8, const PSubKey pSubKey, bool Type) static bool M64, tmp32, *Li=&M0, *Ri=&M32; ByteToBit(M, In, 64); Transform(M, M, IP_Table, 64); if( Type = ENCRYPT ) for(int i=0; i=0; -i) memcpy(tmp, Li, 32); F_func(Li, (*pSubKey)i); Xor(Li, Ri, 32); memcpy(R
37、i, tmp, 32); Transform(M, M, IPR_Table, 64); BitToByte(Out, M, 64);/ DES加解密函數(shù)(可以對長明文分段加密)bool DES_Act(char *Out, char *In, long datalen, const char *Key, int keylen, bool Type) if( !( Out & In & Key & (datalen=(datalen+7)&0xfffffff8) ) ) return false;SetKey(Key, keylen);if( !Is3DES ) / 1次DESfor(long i=0,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度叉車租賃與維護保養(yǎng)合同4篇
- 二零二五年教育科技產(chǎn)品采購合同規(guī)范3篇
- 2025版煤炭安全監(jiān)管居間服務合同范本4篇
- 二零二五年離婚后房產(chǎn)繼承權明確及贍養(yǎng)協(xié)議范本3篇
- 2025年度物流運輸服務采購合同規(guī)范范本4篇
- 二零二五版雞只養(yǎng)殖保險與購銷合同范本3篇
- 二零二五版船舶光租及海員派遣服務協(xié)議3篇
- 二零二五年度車輛貸款合同解除條件合同3篇
- 重慶市二零二五年度出租車公司承包經(jīng)營權合同樣本2篇
- 2025年度生態(tài)濕地植被養(yǎng)護合作協(xié)議3篇
- 江西省港口集團有限公司招聘筆試沖刺題2025
- 河南省信陽市浉河區(qū)9校聯(lián)考2024-2025學年八年級上學期12月月考地理試題(含答案)
- 火災安全教育觀后感
- 農(nóng)村自建房屋安全協(xié)議書
- 快速康復在骨科護理中的應用
- 國民經(jīng)濟行業(yè)分類和代碼表(電子版)
- ICU患者外出檢查的護理
- 公司收購設備合同范例
- 廣東省潮州市2023-2024學年高二上學期語文期末考試試卷(含答案)
- 2024年光伏發(fā)電項目EPC總包合同
- 子女放棄房產(chǎn)繼承協(xié)議書
評論
0/150
提交評論