![DES加密算法的實現(xiàn)_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/f7a01d97-c61b-422f-928e-2d98c7c58508/f7a01d97-c61b-422f-928e-2d98c7c585081.gif)
![DES加密算法的實現(xiàn)_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/f7a01d97-c61b-422f-928e-2d98c7c58508/f7a01d97-c61b-422f-928e-2d98c7c585082.gif)
![DES加密算法的實現(xiàn)_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/f7a01d97-c61b-422f-928e-2d98c7c58508/f7a01d97-c61b-422f-928e-2d98c7c585083.gif)
![DES加密算法的實現(xiàn)_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/f7a01d97-c61b-422f-928e-2d98c7c58508/f7a01d97-c61b-422f-928e-2d98c7c585084.gif)
![DES加密算法的實現(xiàn)_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/29/f7a01d97-c61b-422f-928e-2d98c7c58508/f7a01d97-c61b-422f-928e-2d98c7c585085.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、常州工學(xué)院計算機信息工程學(xué)院 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告題 目 DES加密算法的實現(xiàn)班 級 14軟一 學(xué)號姓名 王磊(組長) 學(xué)號姓名 王凱旋 學(xué)號姓名 陶偉 2016 年 01 月 06日一,實驗名稱: DES加密算法的實現(xiàn)二,實驗內(nèi)容:a) 熟悉DES算法的基本原理;b) 依據(jù)所算則的算法,編程實現(xiàn)該該算法;c) 執(zhí)行程序并分析結(jié)果;三,實驗原理1,概述 DES是一種分組加密算法,他以64位為分組對數(shù)據(jù)加密。64位一組的明文從算法的一端 輸入,64位的密文從另一端輸出。DES是一個對稱算法:加密和解密用的是同一個算法(除密鑰編排不同以外)。 密鑰的長度為56位(密鑰通常表示為64位的數(shù),但每個第
2、8位都用作奇偶檢驗,可以忽略)。密鑰可以是任意的56位數(shù),且可以在任意的時候改變。 DES算法的入口參數(shù)有3個:Key,Data,Mode。其中Key為8個字節(jié)共64位,是DES算法 的工作密鑰;Data也為8個字節(jié)64位,是要被加密或解密的數(shù)據(jù):Mode為DES的工作方式,有兩種:加密或解密。 DES算法的工作過程:若Mode為加密,則用Key對數(shù)據(jù)Data進行加密,生成Data的密碼 形式(64位)作為DES的輸出結(jié)果;若Mode為解密,則用Key對密碼形式的數(shù)據(jù)Data解密,還 原為Data的明碼形式(64位)作為DES的輸出結(jié)果。2,DES算法詳述 DES算法把64位的明文輸入塊變?yōu)?
3、4位的密文輸出塊,他所使用的密鑰也是64位,DES對64 位的明文分組進行操作。通過一個初始置換,將明文分組分成左半部分和右半部分,各32位長。然后進行16輪相同的運算,這些相同的運算被稱為函數(shù)f,在運算過程中數(shù)據(jù)和密鑰相結(jié)合。經(jīng)過16輪運算后左、右部分在一起經(jīng)過一個置換(初始置換的逆置換),這樣算法就完成了。 (1)初始置換 其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0,R0兩部分,每部分各長32位, 即將輸入的第58位換到第1位,第50位換到第2位,依次類推,最后一位是原來的第7位,L0,R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位。 (2)逆置換 經(jīng)過1
4、6次迭代運算后,得到L16,R16,將此作為輸入進行逆置換,即得到密文輸出。逆置換正好是初始置換的逆運算。例如,第1位經(jīng)過初始置換后,處于第40位,而通過逆置 換,又將第40位換回到第1位。 (3)函數(shù)f(Ri,Ki)的計算 “擴展置換”是將32位放大成48位,“P盒置換”是32位到32位換位, 在(Ri,Ki)算法描述圖中,選擇函數(shù)功能是把6 b數(shù)據(jù)變?yōu)? b數(shù)據(jù)。 (4)子密鑰Ki(48 b)的生成算法 開始,由于不考慮每個字節(jié)的第8位,DES的密鑰從64位變?yōu)?8位,如表6所示,首先56位 密鑰被分成兩個部分,每部分28位,然后根據(jù)輪數(shù),兩部分分別循環(huán)左移l或2位。 DES算法規(guī)定,其中
5、第8,16,64位是奇偶校驗位,不參與DES運算。故Key實際可用 位數(shù)只有56位。即:經(jīng)過密鑰置換表的變換后,Key的位數(shù)由64位變成了56位,此56位分為C 0,D0兩部分,各28位,然后分別進行第一次循環(huán)左移,得到C1,D1,將C1(28位),D1(28位 )合并得到56位,再經(jīng)過壓縮置換,從而便得到了密鑰K0(48位)。依次類推,便可得到K1,K 2,K15。需要注意的是,16次循環(huán)左移對應(yīng)的左移位數(shù)要依據(jù)表7所示的規(guī)則進行。 以上介紹了DES算法的加密過程。DES算法的解密過程是一樣的,區(qū)別僅在于第一次迭代時用子密鑰K15,第二次是K14,最后一次用K0,算法本身并沒有任何變化。四,
6、實驗步驟:a) 選擇并熟悉一種密碼算法。b) 編寫概要設(shè)計,詳細設(shè)計報告c) 使用visual c+工具,編碼.d) 調(diào)試及測試五,主要程序#include#include#includevoid show1() /主界面printf(nnntt* DES加密解密系統(tǒng) *nn);printf(tt-n);/printf(tt-n);printf(tt*n);printf(tt*tttttt*n);printf(tt*tttttt*n);printf(tt*ttt1.加密ttt*n);printf(tt*tttttt*n);printf(tt*ttt2.解密ttt*n);printf(tt*tt
7、tttt*n);printf(tt*ttt3.退出ttt*n);printf(tt*tttttt*n);printf(tt*tttttt*n);printf(tt-n);void show2()/加密界面printf(nnntt* DES加密 *nn);printf(tt-n);printf(tt*n);printf(tt*tttttt*n);printf(tt*t請選擇明文和密鑰的輸入方式:tt*n);printf(tt*tttttt*n);printf(tt*tt1.直接輸入ttt*n);printf(tt*tttttt*n);printf(tt*tt2.從文件讀取ttt*n);print
8、f(tt*tttttt*n);printf(tt*tt3.退出tttt*n);printf(tt*tttttt*n);printf(tt-n);printf(ttt選擇:);void reader(char str30,char s8) /讀取明文和密鑰FILE *fp;fp=fopen(str,r);if(fp=NULL)printf(明文讀取失敗!n);elsefscanf(fp,%s,s);fclose(fp);void To2Bin(char p8,int b64) /將字節(jié)轉(zhuǎn)換成二進制流int i,k=0;for(i=0;i=1) if(j&pi) bk+=1; else bk+=0
9、; int IP_Table64 = /初始置換(IP) 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, 56, 48, 40, 32, 24, 16, 8, 0, 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6; int E_Table = /擴展變換E 31,
10、0, 1, 2, 3, 4,3, 4, 5, 6, 7, 8,7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 15, 16, 17, 18, 19, 20, 19, 20, 21, 22, 23, 24, 23, 24, 25, 26, 27, 28, 27, 28, 29, 30, 31, 0; int S_Box8416 = /8個s盒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,
11、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,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, 8,12, 6, 9, 3, 2,15,13, 8,10, 1, 3,15, 4, 2,11, 6, 7,12, 0, 5,14, 9,10, 0, 9,14, 6, 3,15, 5,
12、 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, 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,
13、 5, 2, 8, 4, 3,15, 0, 6,10, 1,13, 8, 9, 4, 5,11,12, 7, 2,14, 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,12, 1,10,15, 9, 2, 6, 8, 0,13, 3, 4,14, 7, 5,11,1
14、0,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, 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,
15、1, 4,10, 7, 9, 5, 0,15,14, 2, 3,12,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;int IP_1_Table64 =/逆初始置換IP-1 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14
16、, 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, 32, 0, 40, 8, 48, 16, 56, 24;int P_Table32 =/置換運算P15,6,19,20,28,11,27,16, 0,14,22,25,4,17,30,9, 1,7,23,13,31,26,2,8, 18,12,29,5,
17、21,10,3,24; int PC_156 = 56,48,40,32,24,16,8, /密鑰置換PC_1 0,57,49,41,33,25,17, 9,1,58,50,42,34,26, 18,10,2,59,51,43,35, 62,54,46,38,30,22,14, 6,61,53,45,37,29,21, 13,5,60,52,44,36,28, 20,12,4,27,19,11,3; int PC_248 =/密鑰置換PC_213,16,10,23,0,4,2,27,14,5,20,9,22,18,11,3,25,7,15,6,26,19,12,1, 40,51,30,36,4
18、6,54,29,39,50,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31; void Replacement(int arry1,int arry2,int arry3,int num)/置換函數(shù)(初始IP,逆初始IP,int i,tmp;for(i=0;inum;i+)tmp=arry2i;arry3i=arry1tmp;int move_times16 = 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1; /對左移位的規(guī)定void lif_move(int arry1,int arry2,int n) /左移位實現(xiàn)函數(shù)int i;
19、for(i=0;i28;i+)arry2i=arry1(n+i)%28;int K1648;/存放16輪子密鑰int c64;/存放明文或密文int L1732,R1732; /存放加密過程中左右部分void SubKey(int K064)/子密鑰產(chǎn)生函數(shù)int i;int K156,K256;int C1728,D1728;Replacement(K0,PC_1,K1,56);/密鑰置換PC_1for(i=0;i28;i+)/將PC_1輸出的56比特分為左右兩部分C0i=K1i;D0i=K1i+28;i=0;while(i16)int j;lif_move(Ci,Ci+1,move_tim
20、esi);lif_move(Di,Di+1,move_timesi);for(j=0;j28;j+)K2j=Ci+1j;K2j+28=Di+1j;Replacement(K2,PC_2,Ki,48);/密鑰置換PC_2i+;/*printf(n子密鑰生成過程中,左邊生成的值:);for(i=0;i17;i+)int j;printf(nC%d:,i);for(j=0;j28;j+)if(j%7=0)printf( );printf(%d,Cij);printf(n子密鑰生成過程中,右邊生成的值:);for(i=0;i17;i+)int j;printf(nD%d:,i);for(j=0;j28
21、;j+)if(j%7=0)printf( );printf(%d,Dij);*/void S_compress(int arry,int shc)/S盒壓縮變換,其中數(shù)組shc存放經(jīng)過s盒的結(jié)果int h,l;/行,列int sha8; /存放經(jīng)過s盒的十進制結(jié)果int i,j;int temp4;for(i=0;i8;i+) /s盒壓縮變換h=arry(1+(i*6)-1*2 + arry(6+(i*6)-1;l =arry(2+(i*6)-1*8 + arry(3+(i*6)-1*4 + arry(4+(i*6)-1*2 + arry(5+(i*6)-1; shai=S_Boxihl; f
22、or(i=0;i=0;j-) tempj=shai%2; shai=shai/2; for(j=0;j4;j+) shc4*i+j=tempj; /*printf(n第%d次s盒的輸出:,m+);for(i=0;i32;i+)if(i%8=0)printf( );printf(%d,shci);*/void To10(int a, int b,int n)/二進制轉(zhuǎn)十進制int i,j;int temp;int arry164;for(i=0;in/4;i+)for(j=0;j4;j+)arryij=a4*i+j;for (i=0;i=0;j-)if(arryij=1)t=1;for(k=0;
23、k3-j;k+)t=t*2;temp+=t;*/bi=temp;void To102(int a, int b,int n)/二進制轉(zhuǎn)十進制int i,j;int temp;int arry88;int t=1,k;for(i=0;in/8;i+)for(j=0;j8;j+)arryij=a8*i+j;for (i=0;i=0;j-)if(arryij=1)t=1;for(k=0;k7-j;k+)t=t*2;temp+=t;bi=temp;void F_Function(int a32,int b32,int n)/F函數(shù)int i;int tmp48;int tep32;Replacemen
24、t(a,E_Table,tmp,48);/擴展變換E/*printf(n第%d輪E盒擴展結(jié)果:,n);for(i=0;i48;i+)if(i%8=0)printf( );printf(%d,tmpi);*/for(i=0;i48;i+)/與子密鑰異或tmpi = Kni;/*printf(n進入S盒的48比特:);for(i=0;i48;i+)if(i%6=0)printf( );printf(%d,tmpi);*/S_compress(tmp,tep); /壓縮變換SReplacement(tep,P_Table,b,32); /置換運算P/*printf(n第%d次P置盒輸出:,l+);f
25、or(i=0;i32;i+)if(i%8=0)printf( );printf(%d,bi);*/*printf(nf%d的輸出結(jié)果:,n);for(i=0;i32;i+)if(i%8=0)printf( );printf(%d,bi);*/void Encryption(int m064,int c164)int i,k;int arry32;int c064,m164;Replacement(m0,IP_Table,m1,64); /初始置換IP/*printf(n初始置換:);for(i=0;i64;i+)if(i%8=0)printf( );printf(%d,m1i);*/for(i
26、=0;i32;i+)L0i=m1i;R0i=m1i+32;k=1;while(k17)F_Function(Rk-1,arry,k-1);for(i=0;i32;i+)Lki=Rk-1i;Rki=Lk-1iarryi;k+;for(i=0;i32;i+)c0i=R16i;c0i+32=L16i;Replacement(c0,IP_1_Table,c1,64); /逆初始置換void changeKey(int a1648)int i,j;int tmp1648;for(i=0;i16;i+)for(j=0;j48;j+)tmpij=aij;for(i=0;i16;i+)for(j=0;j48;
27、j+)Kij=tmp15-ij;void Decryption(int c1,int m)int c064,t64;int i,k;int arry32;changeKey(K);/*printf(n交換后的密鑰:n);for(i=0;i16;i+)printf(n);for(j=0;j48;j+)if(j%8=0)printf( );printf(%d,Kij);*/Replacement(c1,IP_Table,c0,64);/初始IPfor(i=0;i32;i+)L0i=c0i;R0i=c0i+32;k=1;while(k17)F_Function(Rk-1,arry,k-1);for(
28、i=0;i32;i+)Lki=Rk-1i;Rki=Lk-1iarryi;k+;for(i=0;i32;i+)ti=R16i;ti+32=L16i;Replacement(t,IP_1_Table,m,64); /逆初始置換void print() /輸出函數(shù)int i;int a12,b12,d316;int p64,q64;for(i=0;i32;i+)pi=L15i;p32+i=R15i;qi=R16i;qi+32=L16i;To10(K14,a,48);To10(K15,b,48);To10(c,d0,64);To10(p,d1,64);To10(q,d2,64);printf(ntt1
29、5輪密鑰:);for(i=0;i12;i+)printf(%x,ai);printf(t15輪結(jié)果:);for(i=0;i16;i+)printf(%X,d1i);printf(ntt16輪密鑰:);for(i=0;i12;i+)printf(%X,bi);printf(t16輪結(jié)果:);for(i=0;i16;i+)printf(%X,d2i);printf(ntt最后結(jié)果:);for(i=0;i16;i+)printf(%X,d0i);/*printf(n最后結(jié)果二進制:);for(i=0;i64;i+)printf(%d,ci);*/int main()int num,i,t;char
30、s18,s28;int m64; /m存放二進制明文/密文int d64; /存放二進制密鑰int s8;show1();printf(ttinput you choice:);while(1)scanf(%d,&num);switch(num)case 1:system(cls);/調(diào)用清屏函數(shù)show2();scanf(%d,&num);if(num=1)while(strlen(s1)!=8)printf(tt請輸入明文(8):);scanf(%s,s1);To2Bin(s1,m);/將明文轉(zhuǎn)換成二進制流while(strlen(s2)!=8)printf(tt請輸入密鑰(8):);sc
31、anf(%s,s2);To2Bin(s2,d);/將密鑰轉(zhuǎn)換成二進制/*printf(n初始二進制明文:);for(i=0;i64;i+)printf(%d,mi);*/*printf(n初始二進制密鑰:);for(i=0;i64;i+)printf(%d,di);*/SubKey(d);/*printf(n16輪子密鑰如下:);for(i=0;i16;i+)printf(nK%d:,i+1);for(j=0;j48;j+)if(j%8=0)printf( );printf(%d,Kij);*/Encryption(m,c);/*printf(n16次迭代左結(jié)果:);for(i=0;i17;i
32、+)printf(nL%d:,i);for(j=0;j32;j+)if(j%8=0)printf( );printf(%d,Lij);printf(n16次迭代右結(jié)果:);for(i=0;i17;i+)printf(nR%d:,i);for(j=0;j32;j+)if(j%8=0)printf( );printf(%d,Rij);*/print();/*printf(n二進制密文:);for(i=0;i64;i+)printf(%d,ci);*/printf(ntt按0將此密文解密,1返回上一層,2返回主界面,其他鍵退出.);scanf(%d,&t);if(t=0)int s8;int a64
33、;Decryption(c,a);/*printf(n解密后的二進制:);for(i=0;i64;i+)printf(%d,ai);*/To102(a,s,64);printf(ntt解密結(jié)果:);for(i=0;i8;i+)printf(%c,si);printf(ntt按1加密,2解密,3退出);else if(t=1)system(cls);show2();else if(t=2)system(cls);show1();elseexit(0);else if(num=2)char str120,str220;printf(tt請輸入明文文件名:);scanf(%s,str1);reader(str1,s1);To2Bin(s1,m);printf(tt請輸入密鑰文件名:);scanf(%s,str2);reader(str2,s2);To2Bin(s2,d);SubKey(d);Encryption(m,c);print();printf(ntt按0將此密文解密,1將密文存入文件,2返回主界面,其他鍵退出.);scanf(%d,&t);if(t=0)int a64;Decryption(c,a);/*printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級語文上冊 第一單元 5《世說新語》兩則《陳太丘與友期》說課稿 新人教版
- 物理教學(xué)工作總結(jié)
- 小學(xué)四年級語文教師工作總結(jié)
- 小學(xué)美術(shù)教師教學(xué)工作總結(jié)
- 北京冬奧會冬殘奧會總結(jié)大會
- 彩鋼房施工合同范本
- 光伏電站項目委托開發(fā)協(xié)議書范本
- 貸款買房借款合同范本
- 珠海新型泳池工程施工方案
- 達州五年級抽考數(shù)學(xué)試卷
- 小學(xué)六年級數(shù)學(xué)上冊《簡便計算》練習(xí)題(310題-附答案)
- 青海省西寧市海湖中學(xué)2025屆中考生物仿真試卷含解析
- 2024年河南省《輔警招聘考試必刷500題》考試題庫及答案【全優(yōu)】
- -情景交際-中考英語復(fù)習(xí)考點
- 安全隱患報告和舉報獎勵制度
- 地理標(biāo)志培訓(xùn)課件
- 2023行政主管年終工作報告五篇
- 2024年中國養(yǎng)老產(chǎn)業(yè)商學(xué)研究報告-銀發(fā)經(jīng)濟專題
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 公園衛(wèi)生保潔考核表
- 培訓(xùn)如何上好一堂課
評論
0/150
提交評論