武漢理工大學(xué)《MIS系統(tǒng)軟件》實(shí)驗(yàn)報(bào)告_第1頁
武漢理工大學(xué)《MIS系統(tǒng)軟件》實(shí)驗(yàn)報(bào)告_第2頁
武漢理工大學(xué)《MIS系統(tǒng)軟件》實(shí)驗(yàn)報(bào)告_第3頁
武漢理工大學(xué)《MIS系統(tǒng)軟件》實(shí)驗(yàn)報(bào)告_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、武漢理工大學(xué)mis系統(tǒng)軟件實(shí)驗(yàn)報(bào)告 學(xué)生學(xué)號(hào) 實(shí)驗(yàn)課成績(jī) 學(xué) 學(xué) 生 實(shí) 驗(yàn) 報(bào) 告 書 實(shí)驗(yàn)課程名稱 mis 系統(tǒng)軟件 開課學(xué)院 管理學(xué)院 指導(dǎo)教師姓名 江長(zhǎng)斌 學(xué)生姓名 學(xué)生專業(yè)班級(jí) 信管 16 班 2021-2021 學(xué)年 第 二 學(xué)期 實(shí)驗(yàn)報(bào)告填寫說明 1 綜合性、設(shè)計(jì)性實(shí)驗(yàn)必須填寫實(shí)驗(yàn)報(bào)告,驗(yàn)證、演示性實(shí)驗(yàn)可不寫實(shí)驗(yàn)報(bào)告。 2 實(shí)驗(yàn)報(bào)告書 必須按統(tǒng)一格式制作(實(shí)驗(yàn)中心網(wǎng)站有下載)。 3 老師在指導(dǎo)學(xué)生實(shí)驗(yàn)時(shí),必須按實(shí)驗(yàn)大綱的要求,逐項(xiàng)完成各項(xiàng)實(shí)驗(yàn);實(shí)驗(yàn)報(bào)告書中的實(shí)驗(yàn)課程名稱和實(shí)驗(yàn)項(xiàng)目 必須與實(shí)驗(yàn)指導(dǎo)書一致。 4 每項(xiàng)實(shí)驗(yàn)依據(jù)其實(shí)驗(yàn)內(nèi)容的多少,可安排在一個(gè)或多個(gè)時(shí)間段內(nèi)完成,但每項(xiàng)實(shí)驗(yàn)

2、只須填寫一份實(shí)驗(yàn)報(bào)告。 5 每份實(shí)驗(yàn)報(bào)告教師都應(yīng)該有簽名、評(píng)分表及實(shí)驗(yàn)報(bào)告成績(jī)。 6 教師應(yīng)及時(shí)評(píng)閱學(xué)生的實(shí)驗(yàn)報(bào)告并給出各實(shí)驗(yàn)項(xiàng)目成績(jī),完整保存實(shí)驗(yàn)報(bào)告。在完成所有實(shí)驗(yàn)項(xiàng)目后,教師應(yīng)按學(xué)生姓名將批改好的各實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)報(bào)告裝訂成冊(cè),構(gòu)成該實(shí)驗(yàn)課程總報(bào)告,按班級(jí)交到實(shí)驗(yàn)中心,每個(gè)班級(jí)實(shí)驗(yàn)報(bào)告袋中附帶一份實(shí)驗(yàn)指導(dǎo)書及班級(jí)實(shí)驗(yàn)課程成績(jī)表。 7 實(shí)驗(yàn)報(bào)告封面信息需填寫完整,并給出實(shí)驗(yàn)環(huán)節(jié)的成績(jī),實(shí)驗(yàn)環(huán)節(jié)成績(jī)按其類型采取百分制或優(yōu)、良、中、及格和不及格五級(jí)評(píng)定(與課程總成績(jī)一致),并記入課程總成績(jī)中。 實(shí)驗(yàn)項(xiàng)目名稱 加密解密算法 實(shí)驗(yàn)日期 2021.05.03 實(shí) 實(shí) 驗(yàn) 者 專業(yè)班級(jí) 信管 16 實(shí)驗(yàn)地

3、點(diǎn) 室 管院大樓實(shí)驗(yàn)室 216 同 同 組 者 無 組 組 別 無 第一部分:實(shí)驗(yàn)預(yù)習(xí)報(bào)告 (包括實(shí)驗(yàn)?zāi)康摹⒁饬x,實(shí)驗(yàn)基本原理與方法,主要儀器設(shè)備及耗材,實(shí)驗(yàn)方案與技術(shù)路線等) 1 、 實(shí)驗(yàn)?zāi)康?、意義 通過任選三個(gè)加密解密算法) (轉(zhuǎn)換加密必選),用高級(jí)語言實(shí)現(xiàn)加密解密過程。通過實(shí)驗(yàn)過程理解系統(tǒng)中加密解密的基本思想和實(shí)現(xiàn)方法。 2 、 實(shí)驗(yàn)基本原理與方法 單字母替換加密方法 愷撒密碼 加密方法是把英文字母按字母表的順序編號(hào)作為明文,將密鑰定為 m,加密算法為將明文加上密鑰 m,得到密碼表,通過相反的過程由密文得到明文。 單字母替換加密方法 字母倒排序 在加密、解密的過程中明文和密文按照字母表的

4、順序倒排對(duì)應(yīng),即 a 對(duì)應(yīng) z,b 對(duì)應(yīng) y。 單字母替換加密方法 單表置換密碼 由密鑰 key 構(gòu)造字符置換表,完成加密和解密過程。 多字母替換加密方法 維吉利亞密碼 假設(shè)明文 m=m1 m2 m3 mn;密鑰 k=k1k2 k3 kn,對(duì)應(yīng)密文 c=c1 c2 c3 cn,密文為:ci=(mi+ki )mod 26 ,26 個(gè)字母的序號(hào)依次為 025,ci , mi ,ki 是分別是密文明文密鑰中第 i個(gè)字母的序號(hào)。 轉(zhuǎn)換加密方法 通過將明文每 m 個(gè)字符一組按順序分為若干個(gè)字符串,再按照先列后行形成密文,并分析給出解密的方法?;蛘咄ㄟ^給出一個(gè)密鑰字符串,將明文按密鑰字符串長(zhǎng)度按順序分為若

5、干組字符串,再按照密鑰字符串各個(gè)字符的順序形成密文,并分析給出解密的方法。 3 、 主要儀器設(shè)備及耗材 實(shí)驗(yàn)室提供計(jì)算機(jī)和上網(wǎng)條件,c 語言上機(jī)環(huán)境。 4 、 實(shí)驗(yàn)方案與技 術(shù)路線(綜合 性、設(shè)計(jì)性實(shí)驗(yàn)) 第二部分:實(shí)驗(yàn)過程記錄 實(shí)驗(yàn)原始記錄(包括實(shí)驗(yàn)數(shù)據(jù)記錄,實(shí)驗(yàn)現(xiàn)象記錄,實(shí)驗(yàn)過程發(fā)現(xiàn)的問題等) (1)實(shí)驗(yàn)數(shù)據(jù)及現(xiàn)象記錄(節(jié)選) 1. 單字母替換加密方法愷撒密碼 加密方法:把英文字母按字母表的順序編號(hào)作為明文,將密鑰定為 m,加密算法為將明文加上密鑰 m,得到密碼表,通過相反的過程由密文得到明文。 加密算法運(yùn)行如下: 解密算法運(yùn)行如下: 2. 單字母替換加密方法字母倒排序 加密方法:在加密、

6、解密的過程中將明文和密文按照字母表的順序倒排對(duì)應(yīng),即 a 對(duì)應(yīng) z,b 對(duì)應(yīng) y。 加密算法運(yùn)行如下: 解密算法運(yùn)行如下: 3. 轉(zhuǎn)換加密方法 加密方法:通過將明文每 m 個(gè)字符一組按順序分為若干個(gè)字符串,再按照先列后行形成密文,并分析給出解密的方法。 加密算法運(yùn)行如下: 解密算法運(yùn)行如下: (2)實(shí)驗(yàn)過程中存在的問題:(節(jié)選) 第三部分 結(jié)果與討論(可加頁) 一、 實(shí)驗(yàn)結(jié)果分析(包括原程序、輸入數(shù)據(jù)、運(yùn)行結(jié)果、實(shí)驗(yàn)過程發(fā)現(xiàn)的問題及解決方法等) 1. 單字母替換加密方法愷撒密碼 代碼: #includestdio.h #includestring.h #define m 100 void ka

7、isa_jiami(char s, int m) while (*s) if (*s = "a" *s = "z") *s = "a" + (*s - "a" + m) % 26; if (*s = "a" *s = "z") *s = "a" + (*s - "a" + m) % 26; s+; void kaisa_jiemi(char s, int m) while (*s) if (*s = "a" *s =

8、 "z") *s = "a" + (*s - "a" - m + 26) % 26; if (*s = "a" *s = "z") *s = "a" + (*s - "a" - m + 26) % 26; s+; void main() printf(歡迎使用凱撒密碼!n); printf(請(qǐng)選擇加密還是解密,加密請(qǐng)輸入1,解密請(qǐng)輸入2 n); int k, m; scanf(%d, k); char s1m, s2m; if (k = 1) printf

9、(請(qǐng)輸入明文:n); scanf(%s, s1); printf(請(qǐng)輸入密鑰:n); scanf(%d, m); kaisa_jiami(s1, m); printf(以下是對(duì)應(yīng)的密文:n); printf(%s, strupr(s1); printf(n); if (k = 2) printf(請(qǐng)輸入密文:n); scanf(%s, s2); printf(請(qǐng)輸入密鑰:n); scanf(%d, m); kaisa_jiemi(s2, m); printf(以下是對(duì)應(yīng)的明文:n); printf(%s, strupr(s2); printf(n); system(pause); 輸入數(shù)據(jù)及運(yùn)

10、行結(jié)果如下: 2. 單字母替換加密方法字母倒排序 代碼: #includestdio.h #includestring.h #define m 100 void reverse(char s) while (*s) if (*s = "a" *s = "z") *s = 155 - *s; if (*s = "a" *s = "z") *s = 219 - *s; s+; void main() printf(歡迎使用字母倒排序密碼!n); printf(請(qǐng)選擇加密還是解密,加密請(qǐng)輸入1,解密請(qǐng)輸入2 n); in

11、t k; scanf(%d, k); char sm; if (k = 1) printf(請(qǐng)輸入明文:n); scanf(%s, s); reverse(s); printf(以下是對(duì)應(yīng)的密文:n); if (k = 2) printf(請(qǐng)輸入密文:n); scanf(%s, s); reverse(s); printf(以下是對(duì)應(yīng)的明文:n); printf(%s, strupr(s); printf(n); system(pause); 輸入數(shù)據(jù)及運(yùn)行結(jié)果如下: 3. 轉(zhuǎn)換加密方法 代碼: #includestdio.h #includestring.h #define m 100 vo

12、id transform_jiami(char str, int m) int i, j = 0, t = 0, = 0; char s1010; /將明文轉(zhuǎn)換成密文并存儲(chǔ)到一個(gè)二維數(shù)組里 while (1) i = 0; for (;i m;i+) if (t strlen(str) sij = strt; t+; else sij = "#"/將空出的位置用"#"填充,保證數(shù)組 s里的數(shù)據(jù)是 m 行 j+1 列的矩陣,便于后續(xù)輸出 = 1;/用來標(biāo)記是否到達(dá)最后一列 if ( = 1) break; j+; int num1 = i - 1, num

13、2 = j;/標(biāo)記行和列的最大下標(biāo) /輸出密文 i = 0;j = 0; printf(以下是對(duì)應(yīng)的密文:n); for (;i = num1;i+) j = 0; for (;j = num2;j+) if (sij = "#") continue; else if (sij = "a"sij = "z") sij -= 32; /統(tǒng)一以大寫形式輸出 printf(%c, sij); printf(n); void transform_jiemi(char str, int m) int i, j = 0, t = 0, = 0;

14、int count1, count2; /count1 用來記錄原來的明文中相鄰的兩個(gè)數(shù)在密文中的間隔,count2 用來記錄需要填充"#"位置個(gè)數(shù) if (strlen(str) % m = 0) count1 = strlen(str) / m; count2 = 0; else count1 = strlen(str) / m + 1; count2 = m - strlen(str) % m; /當(dāng) count2 不等于 0 時(shí),需要加入"#"來修正密文數(shù)組 char ch100; int num1 = strlen(str) + count2

15、- 1;/num1 代表 ch數(shù)組的下標(biāo) int num2 = strlen(str) - 1;/num2 代表 str數(shù)組的下標(biāo),兩者的初值都是各自數(shù)組的最大下標(biāo) if (count2 != 0) for (;num1 = 0;num1-) if (num1 + 1) % count1 = 0 count2) chnum1 = "#" +; else chnum1 = strnum2; num2-; else while (num1 = 0) chnum1- = strnum2-; char s100; /將修正后的密文數(shù)組轉(zhuǎn)換成明文并存儲(chǔ)到一個(gè)二維數(shù)組里(此時(shí)明文數(shù)組中

16、不包含"#") int count3; for (i = 0;i count1;i+) t = i;/記錄每次 while 循環(huán)的起始位置 count3 = 0;/count3 用來記錄 while 循環(huán)次數(shù),每次需要清零 while (count3 m) if (t strlen(str) break; sj = cht; count3+; t += count1; j+; /輸出明文 printf(以下是對(duì)應(yīng)的明文:n); i = 0; for (;i strlen(str);i+) if (si = "a"si = "z") s

17、i -= 32;/統(tǒng)一以大寫形式輸出 printf(%c, si); printf(n); void main() printf(歡迎轉(zhuǎn)換加密方法!n); printf(請(qǐng)選擇加密還是解密,加密請(qǐng)輸入 1,解密請(qǐng)輸入 2 n); int k, m; scanf(%d, k); char s1m, s2m; if (k = 1) printf(請(qǐng)輸入明文:n); scanf(%s, s1); printf(請(qǐng)輸入密鑰: (提示:密鑰為整數(shù)型)n);/此處的密鑰m代表將明文每 m 個(gè)字符一組按順序分為若干個(gè)字符串 scanf(%d, m); transform_jiami(s1, m); if (

18、k = 2) printf(請(qǐng)輸入密文:n); scanf(%s, s2); printf(請(qǐng)輸入密鑰:(提示:密鑰為整數(shù)型)n); scanf(%d, m); transform_jiemi(s2, m); system(pause); 最終輸入數(shù)據(jù)及運(yùn)行結(jié)果如下: 除此之外,該程序編寫過程中曾出現(xiàn)以下錯(cuò)誤: 經(jīng)過多次調(diào)試,發(fā)現(xiàn)是由于在輸出密文的時(shí)候,將循環(huán)的 num1 初值賦值錯(cuò)誤。 原來的錯(cuò)誤賦值是 i,現(xiàn)修改為 i-1,程序運(yùn)行正確。 二、小結(jié)、建議及體會(huì) 由于.的復(fù)雜性和某些事物的不可預(yù)知性,使得計(jì)算機(jī)系統(tǒng)的環(huán)境往往是不安全的。為此,必須對(duì)其采取"保護(hù)'措施,使之變

19、成為一個(gè)"安全'環(huán)境。"保護(hù)'和"安全'是有不同含意的兩個(gè)術(shù)語。"保護(hù)'可定義為:對(duì)攻擊、入侵和損害系統(tǒng)等的行為進(jìn)行防御或監(jiān)視。"安全'是對(duì)系統(tǒng)完整性和數(shù)據(jù)安全性的可信度的衡量。因此,保護(hù)可以被視為:為保障系統(tǒng)中數(shù)據(jù)的機(jī)密性、完整性和系統(tǒng)可用性,所必須的特定機(jī)制和策略的集合。 近年來,以密碼學(xué)為基礎(chǔ)的數(shù)據(jù)加密技術(shù),已經(jīng)滲透到許多安全保障技術(shù)之中,并作為它們的重要基礎(chǔ)。特別是當(dāng)缺乏完善的保護(hù)策略時(shí),無論計(jì)算機(jī)系統(tǒng)還是計(jì)算機(jī)網(wǎng)絡(luò),都經(jīng)常用對(duì)數(shù)據(jù)進(jìn)行加密的方式保護(hù)系統(tǒng)中的信息。 加密是一種密寫科學(xué),用于把系統(tǒng)中的數(shù)據(jù)(稱之為明文)轉(zhuǎn)換為密文。使攻擊者即使截獲到被加密的數(shù)據(jù),也無法了解數(shù)據(jù)的內(nèi)容,從而有效地保護(hù)了系統(tǒng)中信息的安全性。數(shù)據(jù)加密技術(shù)包括:數(shù)據(jù)加密、數(shù)據(jù)解密、數(shù)字簽名、簽名識(shí)別以及數(shù)字證明等。 本試驗(yàn)針對(duì)數(shù)據(jù)加密和數(shù)據(jù)解密這兩項(xiàng)技術(shù),提供了 5 種可選的加密解密算法,使我們通過編寫加密解密算法的程序,加深了我們

溫馨提示

  • 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)論